// 现货合同操作请求 0 29 167
export interface GldErmcpSpotContractOperateReq {
    SpotContractID: string // uint64 现货合同ID(602+Unix秒时间戳(10位)+xxxxxx)
    OperateType: number // uint32 操作类型-1:保存草稿2:提交申请3:审核通过4:审核拒绝5:撤回6:正常完结7:异常终止
    Remark: string // string 操作备注
    Info?: GldSpotContractInfo // GldSpotContractInfo 现货合同信息
}

/**
 * 修改现货合同状态
 */
export interface SpotContractStatusModifyReq {
    SpotContractID: number // uint64 现货合同ID(602+Unix秒时间戳(10位)+xxxxxx)
    OperateType: number // uint32 操作类型-1:保存草稿2:提交申请3:审核通过4:审核拒绝5:撤回6:正常完结7:异常终止
}

// 现货合同操作响应 0 29 168
export interface GldErmcpSpotContractOperateRsp {
    RetCode: number // int32 返回码
    RetDesc: string // string 描述信息
    SpotContractID: number // uint64 现货合同ID(602+Unix秒时间戳(10位)+xxxxxx)
    OperateType: number// uint32 操作类型-1:保存草稿2:提交申请3:审核通过4:审核拒绝5:撤回6:正常完结7:异常终止
    OperateSrc: number // uint32 操作来源-1:管理端2:终端
    ClientTicket: string // string 客户端流水号
}

// 现货合同信息 0 29 166
export interface GldSpotContractInfo {
    TradeDate?: string // string 交易日(yyyyMMdd)
    ContractNo?: string // string 现货合同编号
    ContractType?: number// int32 现货合同类型-1:采购-1:销售
    UserID?: number // uint64 机构ID
    BuyUserID?: number // uint64 采购方ID
    SellUserID?: number // uint64 客户ID
    SignDate?: string // string 签订日期
    ContractAttachment?: Uint8Array // bytes 合同附件
    ContractMargin?: number // double 合同保证金
    DeliveryGoodsID?: number  // uint64 现货品种ID
    WrStandardID?: number  // uint64 现货商品ID
    ProductType?: number  // uint32 产品类型-1:标准仓单2:等标3:非标
    ConvertFactor?: number  // double 标仓系数
    SpotGoodsDesc?: string // string 商品型号
    PriceType?: number // uint32 定价类型-1:一口价2:点价3:暂定价
    Qty?: number // double 数量
    Price?: number// double 价格暂定价[1:一口价、3:暂定价]
    Amount?: number // double 金额[1:一口价、3:暂定价]
    DeliveryStartDate?: string// string 交收期(开始)
    DeliveryEndDate?: string // string 交收期(结束)
    GoodsID?: number // uint64 点价合约ID-0:为现货，其它为期货商品合约ID[2:点价3:暂定价]
    PriceMove?: number// double 升贴水[2:点价3:暂定价]
    StartDate?: string // string 点价开始日期[2:点价3:暂定价]
    EndDate?: string // string 点价结束日期[2:点价3:暂定价]
    PointDesc?: string // string 点价备注[2:点价3:暂定价]
    DeliveryDesc?: string  // string 交收方式
    MerUserID?: number // uint64 跟单员ID
    TradeUserID?: number // uint64 交易员ID
    PricedQty?: number // double 已定价量
    PricedAmount?: number // double 已定价金额
    SpotGoodsBrandID?: number // uint64 现货品牌ID
    Remark?: string // string 合同备注
    SaleUserID?: number // uint64 业务员ID
    AccountID?: number // uint64 期货账户ID
    BizType?: number // uint32 业务类型 - 1:套保 2:套利
    CurrencyID?: number // 结算币种ID
}

//现货合同操作请求  (一部分操作用这个借口)
export interface SpotContractOperateReq {
    SpotContractID: string; // 现货合同id
    OperateType: number; // uint32 操作类型-1:保存草稿2:提交申请3:审核通过4:审核拒绝5:撤回6:正常完结7:异常终止
    Remark: string; // string 操作备注
    Info?: SpotContractInfo; // SpotContractInfo 现货合同信息
}

export interface SpotContractInfo {
    ContractNo?: string; // string 现货合同编号
    ContractType?: number; // int32 现货合同类型-1:采购-1:销售
    UserID?: number; // uint32 机构ID
    BuyUserID?: number; // uint32 采购方ID
    SellUserID?: number; // uint32 客户ID
    SignDate?: string; // string 签订日期
    ContractAttachment?: Uint8Array; // bytes 合同附件
    ContractMargin?: number; // double 合同保证金
    DeliveryGoodsID?: number; // uint32 现货品种ID
    WrStandardID?: number; // uint32 现货商品ID
    ProductType?: number; // uint32 产品类型-1:标准仓单2:等标3:非标
    ConvertFactor?: number; // double 标仓系数
    SpotGoodsDesc?: string; // string 商品型号
    PriceType?: number; // uint32 定价类型-1:一口价2:点价3:暂定价
    Qty?: number; // double 数量
    Price?: number; // double 价格暂定价[1:一口价、3:暂定价]
    Amount?: number; // double 金额[1:一口价、3:暂定价]
    DeliveryStartDate?: string; // string 交收期(开始)
    DeliveryEndDate?: string; // string 交收期(结束)
    GoodsID?: number; // uint32 点价合约ID-0:为现货，其它为期货商品合约ID[2:点价3:暂定价]
    PriceMove?: number; // double 升贴水[2:点价3:暂定价]
    StartDate?: string; // string 点价开始日期[2:点价3:暂定价]
    EndDate?: string; // string 点价结束日期[2:点价3:暂定价]
    PointDesc?: string; // string 点价备注[2:点价3:暂定价]
    DeliveryDesc?: string; // string 交收方式
    MerUserID?: number; // uint32 跟单员ID
    TradeUserID?: number; // uint32 交易员ID
    PricedQty?: number; // double 已定价量
    PricedAmount?: number; // double 已定价金额
    SpotGoodsBrandID?: number; // uint32 现货品牌ID
    Remark?: string; // string 合同备注
    SaleUserID?: number; // uint32 业务员ID
    AccountID?: number; // uint64 期货账户ID
    BizType?: number; // uint32 业务类型 - 1:套保 2:套利
    WrFactorTypeID?: number; // uint64 仓单要素类型ID(212+Unix秒时间戳(10位)+xxxxxx)
    CustomerUserID?: number; // uint32 客户ID
    RelatedUserID?: number; // uint32 关联用户ID
}

// 现货合同操作响应 0 18 6
export interface SpotContractOperateRsp {
    RetCode: number; // int32 返回码
    RetDesc: string; // string 描述信息
    SpotContractID: number; // uint64 现货合同ID(602+Unix秒时间戳(10位)+xxxxxx)
    OperateType: number; // uint32 操作类型-1:保存草稿2:提交申请3:审核通过4:审核拒绝5:撤回6:正常完结7:异常终止
    OperateSrc: number; // uint32 操作来源-1:管理端2:终端
    ClientTicket: string; // string 客户端流水号
}
