/**
* @file xlt_trade_api.h
 * @author 上海前路有光数字科技
 * @date 2026-01-10
 * @brief 本接口定义XLT的列表数据访问接口类。
 */
#pragma once
#include <cstddef>
#include "xlt_trade_struct.h"

namespace x1 {
    /**
     * @brief 只读订单信息列表
     */
    class XLTOrderList {
    public:
        virtual size_t data_count() const = 0;
        virtual const xlt_order_info_t* get(int i) const = 0;
    protected:
        virtual ~XLTOrderList() = default;
    };

    /**
     * @brief 只读初始资金信息列表
     */
    class XLTInitAssetList {
    public:
        virtual size_t data_count() const = 0;
        virtual const xlt_init_asset_info_t* get(int i) const = 0;
    protected:
        virtual ~XLTInitAssetList() = default;
    };

    /**
     * @brief 只读初始持仓信息列表
     */
    class XLTInitPositionList {
    public:
        virtual size_t data_count() const = 0;
        virtual const xlt_init_position_info_t* get(int i) const = 0;
    protected:
        virtual ~XLTInitPositionList() = default;
    };

    /**
     * @brief 只读资金信息列表
     */
    class XLTAssetList {
    public:
        virtual size_t data_count() const = 0;
        virtual const xlt_asset_info_t* get(int i) const = 0;
    protected:
        virtual ~XLTAssetList() = default;
    };

    /**
     * @brief 只读持仓信息列表
     */
    class XLTPositionList {
    public:
        virtual size_t data_count() const = 0;
        virtual const xlt_position_info_t* get(int i) const = 0;
    protected:
        virtual ~XLTPositionList() = default;
    };

    /**
     * @brief 只读成交回报信息列表
     */
    class XLTTradeReportList {
    public:
        virtual size_t data_count() const = 0;
        virtual const xlt_trade_report_t* get(int i) const = 0;
    protected:
        virtual ~XLTTradeReportList() = default;
    };

    /**
     * @brief 只读交易账号信息列表
     */
    class XLTTradeAccountInfoList {
    public:
        virtual size_t data_count() const = 0;
        virtual const xlt_trade_account_info_t* get(int i) const = 0;
    protected:
        virtual ~XLTTradeAccountInfoList() = default;
    };
}
