WsData.php 1.2 KB
<?php

namespace trader\struct;

require_once __DIR__ . '/WsDataTrade.php';

use trader\struct\WsDataTrade;
use trader\struct\WsDataPos;
use trader\struct\WsDataOrder;
use trader\struct\WsDataAccount;

// 综合ws数据
class WsData
{
    public string $platform;
    public string $dataType; // trade | order | account | pos
    public ?WsDataTrade $trade = null;
    public ?WsDataPos $pos = null;
    public ?WsDataOrder $order = null;
    public ?WsDataAccount $account = null;


    public function __construct(string $platform, string $dataType, WsDataTrade $trade = null, WsDataPos $pos = null, WsDataOrder $order = null, $account = null)
    {
        $this->platform = $platform;
        $this->dataType = $dataType;
        $this->trade = $trade;
        $this->pos = $pos;
        $this->order = $order;
        $this->account = $account;
    }

    public function toArray()
    {
        return [
            'platform' => $this->platform,
            'dataType' => $this->dataType,
            'trade' => $this->trade?->toArray(),
            'pos' => $this->pos?->toArray(),
            'order' => $this->order?->toArray(),
            'account' => $this->account?->toArray(),
        ];
    }
}