/**
 * 新增套期项目请求
 */
export interface HedgedItemAddReq {
    HedgedItemNum: string; // 被套期项目编号
    HedgedItemName: string; // 项目名称
    HedgedType?: number; // 套期类型-1:采购计划项目
    PlanStartDate: string; // 计划开始日期
    PlanEndDate: string; // 计划结束日期
    TradeUserID?: number; // 交易用户ID
    AreaUserID: number; // 企业ID
    ApplySrc: number; // 申请来源
    ApplyID: number; // 申请人
    Remark?: string; // 备注
    SpotContractID: number; // 现货合同ID
    Qty: number; // 数量
    ClientTicket: string; // 客户端流水号
}

/**
 * 新增套期项目响应
 */
export interface HedgedItemAddRsp {
    RetCode: number; // 返回码
    RetDesc: string; // 描述信息
    HedgedItemID: number; // 被套期项目ID
    ClientTicket: string;  // 客户端流水号
}

/**
 * 套期项目操作请求
 */
export interface HedgedItemOperateReq {
    HedgedItemID: number; // 被套期项目ID
    OperateType: number; // 操作类型-1:审核通过2:审核拒绝
    AuditID: number; // 审核人
    AuditSrc: number; // 审核来源
    AuditRemark: string; // 审核备注
    ClientTicket: string; // 客户端流水号
}

/**
 * 套期项目操作响应
 */
export interface HedgedItemOperateRsp {
    RetCode: number; // 返回码
    RetDesc: string; // 描述信息
    ClientTicket: string; // 客户端流水号
}

/**
 * 套期项目结束请求
 */
export interface HedgedItemEndReq {
    HedgedItemID: number; // 被套期项目信息
    ClientTicket: string; // 客户端流水号
}

/**
 * 套期项目结束响应
 */
export interface HedgedItemEndRsp {
    RetCode: number; // 返回码
    RetDesc: string; // 描述信息
    ClientTicket: string; // 客户端流水号
}

// 被套期项目信息
export interface HedgedItemInfo {
    HedgedItemID: number; // 被套期项目ID
    RelatedQty: number; // 关联数量
}

// 合同关联项目请求
export interface ContractRelatedHedgedItemReq {
    SpotContractID: number; // 现货合同ID
    HedgedItemInfos: HedgedItemInfo[]; // 被套期项目信息
    ClientTicket: string; // 客户端流水号
}

// 合同关联项目响应
export interface ContractRelatedHedgedItemRsp {
    RetCode: number; // 返回码
    RetDesc: string; // 描述信息
    ClientTicket: string; // 客户端流水号
}

// 关联套保计划信息
export interface RelatedHedgePlanInfo {
    HedgePlanID: number; // 被套期项目ID
    OriAvgPrice: number; // 期初市场价
}

// 项目关联计划请求
export interface HedgedItemRelatedPlanReq {
    HedgedItemID: number; // 被套期项目信息
    RelatedHedgePlanInfos: RelatedHedgePlanInfo; // 关联套保计划信息
    ClientTicket: string; // 客户端流水号
}

// 项目关联计划响应
export interface HedgedItemRelatedPlanRsp {
    RetCode: number; // 返回码
    RetDesc: string; // 描述信息
    ClientTicket: string; // 客户端流水号
}

// 内部成交单关联请求
export interface InnerTradeLinkReq {
    TradeId: number; // 内部成交单号
    HedgeFlag: number; // 投机套保标志
    SpotContractID: number; // 现货合同ID
    SaleUserID?: number; // 业务员ID
    BizSubjectID?: number; // 归属业务部门ID
    RelatedLot: number; // 关联手数
    RelatedMode: number; // 关联模式
    CreatorSrc: number; // 创建来源
    CreatorID: number; // 创建人
    ClientTicket: string; // 客户端流水号
}

// 内部成交单关联响应
export interface InnerTradeLinkRsp {
    RetCode: number; // 返回码
    RetDesc: string; // 描述信息
    TradeId: number; // 内部成交单号
    ClientTicket: string; // 客户端流水号
}

// 补录内部成交单请求
export interface ManageAmendOrderReq {
    OutTradeID?: number; // 外部成交单号
    AccountID?: number; // 内部期货子账户
    BuyOrSell?: number; // 方向-0:买
    GoodsID?: number; // 商品ID
    ChannelBuildType?: number; // 下单类型(开平标志-0:无
    CloseType: number; // 平仓类型(平仓标志-0:平仓
    TradePrice?: number; // 成交价格
    TradeQty?: number; // 成交数量
    CreatorSrc: number; // 创建人来源-1:管理端
    CreatorID: number; // 创建人ID
    HedgeFlag: number; // 4:套期保值5:单边6:移仓
    SpotContractID: number; // RelatedTradeType=4:套期保值时
    SaleUserID?: number; // 业务员ID
    BizSubjectID?: number; // 归属业务部门ID
}

// 补录内部成交单响应
export interface ManageAmendOrderRsp {
    RetCode: number; // 返回码
    RetDesc: string; // 描述信息
    OutTradeID: number; // 外部成交单号
    AccountID: number; // 内部期货子账户
}