import { IMessageHead } from '@/services/socket/trade/protobuf/proto'
import Long from 'long'

declare global {
    namespace Proto {
        /** 广钻预售申请请求 */
        interface GZPresaleApplyReq {
            Header?: IMessageHead;
            SellUserID: number; // 发行方用户，必填
            SellAccountID: number; // 发行方资金账户ID,必填
            WRStandardName: string; // 现货商品名称,必填
            PresaleQty: number; // 预售总量,必填
            MinBuyQty: number; // 单人最小申购量,必填
            MaxBuyQty: number; // 单人最大申购量,必填
            MinSuccessQty: number; // 最低成团量,必填
            UnitPrice: number; // 预售价格，小数，两位,必填
            StartDate: string; // 预售开始日期,必填
            EndDate: string; // 预售结束日期,必填
            BuyMarginAlgorithm: number; // 买方保证金方式,必填
            BuyMarginValue: number; // 买方保证金设置值,小数，四位,必填
            PerformanceTemplateID: number; // 履约计划模板ID,必填
            MarketID: number; // 市场ID,必填
            YSZSCategory: number; // 预售钻石分类
            ZSColorTypeStr: string; // 颜色,最大允许64个字符
            ZSClarityTypeStr: string; // 净度,最大允许64个字符
            SizeStr: string; // 尺寸,最大允许64个字符
            YieldRate: string; // 成品率,最大允许64个字符
            QtyDesc: string; // 数量描述,最大允许64个字符
            WeightDesc: string; // 重量描述,最大允许64个字符
            YSProductionMode: number; // 生产方式
            PictureUrls: string; // 图片,CLOB,多张逗号分隔
            Remark: string; // 备注,最大允许256个字符
            ClientType: number; // 终端类型
            ClientSerialNo: string; // 客户端流水号
        }

        /** 广钻预售申请响应 */
        interface GZPresaleApplyRsp {
            Header?: IMessageHead;
            RetCode: number; // 返回码
            RetDesc: string; // 描述信息
            SellUserID: number; // 发行方用户
            PresaleApplyID: number; // 预售申请ID
            ClientSerialNo: string; // 客户端流水号
        }

        /** 广钻预售认购下单请求 */
        interface GZPresaleOrderReq {
            Header?: IMessageHead;
            UserID: number; // 用户ID，必填
            AccountID: number; // 资金账户ID,必填
            WRTradeOrderID: Long; // 仓单贸易委托单ID,必填
            OrderQty: number; // 认购数量,必填
            MarketID: number; // 市场ID,必填
            ClientOrderTime: string; // 委托时间,必填
            ClientType: number; // 终端类型
            ClientSerialNo: string; // 客户端流水号
        }

        /** 广钻预售认购下单响应 */
        interface GZPresaleOrderRsp {
            Header?: IMessageHead;
            RetCode: number; // 返回码
            RetDesc: string; // 描述信息
            UserID: number; // 用户ID
            AccountID: number; // 资金账户ID
            WRTradeOrderID: number; // 仓单贸易委托单ID
            ClientSerialNo: string; // 客户端流水号
        }

        /** 广钻集采申请请求 */
        interface GZCenterPurchaseApplyReq {
            Header?: IMessageHead;
            SellUserID: number; // 发行方用户，必填
            SellAccountID: number; // 发行方资金账户ID,必填
            WRStandardName: string; // 现货商品名称,必填
            PresaleQty: number; // 预售总量,必填
            MinBuyQty: number; // 单人最小申购量,必填
            MaxBuyQty: number; // 单人最大申购量,必填
            MinSuccessQty: number; // 最低成团量,必填
            StartDate: string; // 预售开始日期,必填
            EndDate: string; // 预售结束日期,必填
            BuyMarginAlgorithm: number; // 买方保证金方式,必填
            BuyMarginValue: number; // 买方保证金设置值,小数，四位,必填
            PerformanceTemplateID: number; // 履约计划模板ID,必填
            GZCenterPurchasePriceLists: GZCenterPurchasePrice[]; // 价格列表,必填
            MarketID: number; // 市场ID,必填
            YSZSCategory: number; // 预售钻石分类
            ZSShapeTypeStr: string; // 形状,最大允许64个字符
            ZSColorTypeStr: string; // 颜色,最大允许64个字符
            ZSClarityTypeStr: string; // 净度,最大允许64个字符
            ZSCutTypeStr: string; // 切工,最大允许64个字符
            ZSSymmetryTypeStr: string; // 对称,最大允许64个字符
            ZSPolishTypeStr: string; // 抛光,最大允许64个字符
            ZSFluorescenceTypeStr: string; // 荧光,最大允许64个字符
            SizeStr: string; // 尺寸,最大允许64个字符
            YieldRate: string; // 成品率,最大允许64个字符
            QtyDesc: string; // 数量描述,最大允许64个字符
            WeightDesc: string; // 重量描述,最大允许64个字符
            YSProductionMode: number; // 生产方式
            PictureUrls: string; // 图片,CLOB,多张逗号分隔
            Remark: string; // 备注,最大允许256个字符
            ClientType: number; // 终端类型
            ClientSerialNo: string; // 客户端流水号
        }

        /** 广钻集采价格列表 */
        interface GZCenterPurchasePrice {
            StepIndex: number; // 档位序号，必填
            Qty: number; // 档位数量,必填
            Price: number; // 档位价格,小数，两位,必填
        }

        /** 广钻集采申请响应 */
        interface GZCenterPurchaseApplyRsp {
            Header?: IMessageHead;
            RetCode: number; // 返回码
            RetDesc: string; // 描述信息
            SellUserID: number; // 发行方用户
            PresaleApplyID: number; // 预售申请ID
            ClientSerialNo: string; // 客户端流水号
        }

        /** 广钻集采认购下单请求 */
        interface GZCenterPurchaseOrderReq {
            Header?: IMessageHead;
            UserID: number; // 用户ID，必填
            AccountID: number; // 资金账户ID,必填
            WRTradeOrderID: Long; // 仓单贸易委托单ID,必填
            OrderQty: number; // 认购数量,必填
            MarketID: number; // 市场ID,必填
            ClientOrderTime: string; // 委托时间,必填
            ClientType: number; // 终端类型
            ClientSerialNo: string; // 客户端流水号
        }

        /** 广钻集采认购下单响应 */
        interface GZCenterPurchaseOrderRsp {
            Header?: IMessageHead;
            RetCode: number; // 返回码
            RetDesc: string; // 描述信息
            UserID: number; // 用户ID
            AccountID: number; // 资金账户ID
            WRTradeOrderID: number; // 仓单贸易委托单ID
            ClientSerialNo: string; // 客户端流水号
        }
    }
}