// 消息头
message MessageHead {
	optional uint32 FunCode = 1; // 功能号
	optional uint32 RequestID = 2; // 客户端的流水ID
	optional uint64 AccountID = 3; // 账号ID
	optional uint32 AccessID = 4; //二级分配给客户端的接入ID
	optional int64 ClientTime = 5; //消息发起时间
	optional uint32 GoodsID = 6; //商品ID
	optional string UUID = 7; // 消息唯一ID
	optional uint32 MarketID = 8; // 所属市场ID
	optional uint32 UserID = 9; // 用户ID
	optional string ResponseTopic = 10; // 应答消息所属主题
	optional uint64 AccountID2 = 11; // 账号ID-币币交易使用
}

// 用户登录请求
message LoginReq {
	optional MessageHead Header = 1;
		optional uint64 LoginID = 2; // 登录ID
		optional string LoginPWD = 3; // 登录密码
		optional uint32 LoginType = 4; // 登陆类型
		optional uint32 ClientType = 5; // 终端软件类型
		optional string Version = 6; // 终端软件版本号
		optional string MobilePhone = 7; // 移动电话
		optional string GUID = 8; // 唯一标识码
		optional string LoginIp = 9; // 登录IP地址
		optional uint32 LoginPort = 10; // 登陆通信端口
		optional string DeviceID = 11; // 设备标识
		optional string EnvironmentInfo = 12; // 软件环境信息
		optional string LoginCode = 13; // 登陆码
		optional bytes ClientSystemInfo = 14; // 终端系统信息
		optional string ClientAppID = 15; // 终端AppID
}

// 用户登录应答
message LoginRsp {
	optional MessageHead Header = 1; // 消息头
	optional int32 RetCode = 2; // 返回码
	optional string RetDesc = 3; // 描述信息
		optional uint64 LoginID = 4; // 登录ID
		optional uint32 LoginUserType = 5; // 登陆用户类型
		optional uint32 AccountStatus = 6; // 用户状态
		optional uint32 UserID = 7; // 用户ID
		optional uint32 MemberUserID = 8; // 用户所属会员用户ID
		repeated uint64 AccountIDs = 9; // 账户ID列表(有权限的)
		optional string Token = 10; // 用户令牌
		optional uint64 SystemTime = 11; // 系统时间
		optional uint32 HasUpdatedPwd = 12; // 是否已更改密码
		optional uint32 PwdWrongCnt = 13; // 当前密码输入错误次数
		optional uint32 PwdWrongLockCnt = 14; // 登陆账号锁定密码输入错误次数
		optional uint32 LoginLockHourNum = 15; // 登陆账号锁定时长(小时)
		optional string LoginCode = 16; // 登陆码
		optional bytes ClientSystemInfo = 17; // 终端系统信息
		optional uint64 ClientID = 18; // 终端ID(登陆服务分配，用于通道交易关联链路)
}

// 用户登出请求
message LogoutReq {
	optional MessageHead Header = 1;
		optional uint64 LoginID = 2; // 登录ID
		optional string Token = 3; // 登录时返回的用户令牌
		optional string LoginIp = 4; // 登出IP地址
		optional uint32 LoginPort = 5; // 登出通信端口
}

// 用户登出应答
message LogoutRsp {
	optional MessageHead Header = 1; // 消息头
	optional int32 RetCode = 2; // 返回码
	optional string RetDesc = 3; // 描述信息
}

// 用户令牌校验请求
message TokenCheckReq {
	optional MessageHead Header = 1;
		optional uint64 LoginID = 2; // 登陆账户ID
		optional string Token = 3; // 用户令牌
		optional uint64 SystemTime = 4; // 校验时的系统时间
		optional uint32 CheckType = 5; // 校验类型
}

// 用户令牌校验应答
message TokenCheckRsp {
	optional MessageHead Header = 1; // 消息头
	optional int32 RetCode = 2; // 返回码
	optional string RetDesc = 3; // 描述信息
		optional uint64 LoginID = 4; // 登陆账户ID
		optional uint32 TokenStatus = 5; // 令牌状态
		optional uint32 LoginUserType = 6; // 登陆用户类型
		optional uint32 UserID = 7; // 用户ID
		optional uint32 MemberUserID = 8; // 用户所属会员用户ID
		repeated uint64 AccountIDs = 9; // 账户ID列表(有权限的)
		optional uint64 SystemTime = 10; // 返回服务器最新时间
}

// 修改账户密码请求
message ModifyPwdReq {
	optional MessageHead Header = 1;
		optional uint32 ModifyPwdType = 2; // 修改密码类型1：登陆密码2：资金账户密码
		optional uint64 ModifyPwdID = 3; // 被修改的ID(ModifyType=1:LoginIDModifyType=2:AccountID)
		optional string OldPwd = 4; // 旧资金密码
		optional string NewPwd = 5; // 新资金密码
}

// 修改账户密码应答
message ModifyPwdRsp {
	optional MessageHead Header = 1; // 消息头
	optional int32 RetCode = 2; // 返回码
	optional string RetDesc = 3; // 描述信息
}

// 登录查询请求
message LoginQueryReq {
	optional MessageHead Header = 1;
		optional uint64 LoginID = 2; // 登陆账号id
		optional string QueryItem = 3; // 不填返回全部结果集，填写后表示按需查询，多个以“,”隔开1-账号信息2-资金账户列表3-
}

// 登录查询应答
message LoginQueryRsp {
	optional MessageHead Header = 1; // 消息头
	optional int32 RetCode = 2; // 返回码
	optional string RetDesc = 3; // 描述信息
		optional AccountInfo AccountInfo = 4; // 账号信息
		repeated TAAccountAll TAAccountList = 5; // 资金账户列表
		repeated GoodsRuleAndFee GoodsRuleAndFeeList = 6; // 商品交易规则和费用规则列表
		repeated ParamValue ParamValues = 7; // 时间戳集合
		optional uint32 ServerLastNoticeId = 8; // 最大通知id
}

// 账户信息
message AccountInfo {
		optional uint32 UserID = 1; // 用户ID
		optional uint32 UserType = 2; // 账户类型
		optional uint32 ParentUserID = 3; // 所属机构ID
		optional string AccountName = 4; // 账户名称
		optional string CustomerName = 5; // 用户名称（签约用）
		optional uint32 UserInfoType = 6; // 1:个人2:企业（签约用）
		optional uint32 CardTypeID = 7; // 证件类型（签约用）
		optional string CardNum = 8; // 证件号码（签约用）
		optional string Mobile = 9; // 手机号码（签约用）
		optional uint32 HasAuth = 10; // 是否已实名认证-0:未认证
		optional uint64 MemberUserid = 11; // 所属会员
			optional uint32 IsAnonymous = 12; // 是否匿名0否
			optional uint32 taaccountrighttype = 13; // 资金账号权限类型-1:不选默认为所有权限
}

// 账户相关信息
message TAAccountAll {
		optional TaAccountInfo TaAccountInfo = 1; // 资金账户信息
		repeated TradePosition TradePositionList = 2; // 持仓头寸列表
		repeated uint32 MarketsIdList = 3; // 市场id数组
}

// 资金账户信息
message TaAccountInfo {
		optional uint64 AccountId = 1; // 账户id
		optional uint32 TradeStatus = 2; // 交易状态
		optional string Currency = 3; // 币种
		optional uint32 IsMain = 4; // 是否母账户
		optional uint64 ParentAccountID = 5; // 所属母账户
		optional uint32 TAAccountType = 6; // 内、外部
		optional uint64 RelatedMainAccountID = 7; // 关联账户
		optional double Balance = 8; // 期初余额
		optional double CurrentBalance = 9; // 期末余额
		optional double UsedMargin = 10; // 占用保证金
		optional double FreezeMargin = 11; // 冻结保证金
		optional double OtherFreezeMargin = 12; // 其他冻结保证金
		optional double FreezeCharge = 13; // 手续费冻结
		optional double MortgageCredit = 14; // 授信金额
		optional double OtherCredit = 15; // 其它授信金额
		optional double OutAmountFreeze = 16; // 出金冻结
		optional double InAmount = 17; // 今日入金
		optional double OutAmount = 18; // 今日出金
		optional double PayCharge = 19; // 今日手续费支出
		optional double ClosePL = 20; // 今日平仓盈亏
		optional double CreditIncrease = 21; // 今日授信增加
		optional double CreditDecrease = 22; // 今日授信减少
		optional double OtherCreditIncrease = 23; // 今日其它授信增加
		optional double OtherCreditDecrease = 24; // 今日其它授信减少
		optional double TransferAmount = 25; // 今日划转金额
		optional double OtherPay = 26; // 其他支出
		optional double OtherIncome = 27; // 其他收入
		optional double OutThreshold = 28; // 出金阀值
		optional uint32 IsMarketAccount = 29; // 是否机构接单账号0:不是1:是
		optional uint32 Currencyid = 30; // 报价货币ID
}

// 资金变化通知
message MoneyChangedNtf {
	optional MessageHead Header = 1; // 消息头
		optional NotifyHead NtfHeader = 2; // NotifyHead 公共消息头
		optional uint64 AccountID = 3; // uint64 交易账号
}

// 新增修改收货地址请求
message UserReceiveInfoReq {
	optional MessageHead Header = 1;
		optional uint64 ClientSerialID = 2; // 客户端唯一ID
		optional uint32 UserID = 3; // 用户ID
		optional string ReceiverName = 4; // 提货人姓名
		optional uint32 CardTypeID = 5; // 证件类型
		optional string CardNum = 6; // 证件号码
		optional string PhoneNum = 7; // 提货人联系方式
		optional uint32 CountryID = 8; // 国家
		optional uint32 ProvinceID = 9; // 省
		optional uint32 CityID = 10; // 市
		optional uint32 DistrictID = 11; // 地区
		optional string Address = 12; // 提货人详细地址
		optional string TakeRemark = 13; // 提货备注
		optional uint64 ReceiveInfoId = 14; // 修改时填收货地址id
}

// 新增修改收货地址请求响应
message UserReceiveInfoRsp {
	optional MessageHead Header = 1; // 消息头
	optional int32 RetCode = 2; // 返回码
	optional string RetDesc = 3; // 描述信息
		optional uint64 ReceiveInfoId = 4; // 响应返回autoid
}

// 删除收货地址请求
message DelUserReceiveInfoReq {
	optional MessageHead Header = 1;
		optional uint64 ReceiveInfoId = 2; // 收货地址id
}

// 删除收货地址请求响应
message DelUserReceiveInfoRsp {
	optional MessageHead Header = 1; // 消息头
	optional int32 RetCode = 2; // 返回码
	optional string RetDesc = 3; // 描述信息
}

// 设置默认收货地址请求
message UserReceiveIsDefaultReq {
	optional MessageHead Header = 1;
		optional uint64 AutoId = 2; // 提货地址ID
		optional uint64 UserId = 3; // 用户ID
}

// 设置默认收货地址应答
message UserReceiveIsDefaultRsp {
	optional MessageHead Header = 1; // 消息头
	optional int32 RetCode = 2; // 返回码
	optional string RetDesc = 3; // 描述信息
		optional uint64 AutoId = 4; // 提货地址ID
}

// 新增修改用户发票信息请求
message UserReceiptInfoReq {
	optional MessageHead Header = 1;
		optional uint64 ClientSerialID = 2; // 客户端唯一ID
		optional uint32 UserID = 3; // 用户ID
		optional string UserName = 4; // 发票抬头姓名
		optional uint32 ReceiptType = 5; // 发票类型
		optional string TaxpayerID = 6; // 纳税人识别号
		optional string ContactInfo = 7; // 联系方式
		optional uint64 ReceiptInfoId = 8; // 修改时填用户发票信息id
		optional string ReceiptBank = 9; // 发票开户行[发票类型:企业]
		optional string ReceiptAccount = 10; // 发票帐号[发票类型:企业]
		optional string Address = 11; // 地址[发票类型:企业]
		optional string IDNum = 12; // 身份证号码[发票类型:个人]
}

// 新增修改用户发票信息请求响应
message UserReceiptInfoRsp {
	optional MessageHead Header = 1; // 消息头
	optional int32 RetCode = 2; // 返回码
	optional string RetDesc = 3; // 描述信息
		optional uint64 ReceiptInfoId = 4; // 响应返回发票信息id
}

// 删除用户发票信息请求
message DelUserReceiptInfoReq {
	optional MessageHead Header = 1;
		optional uint64 ReceiptInfoId = 2; // 删除发票信息id
}

// 删除用户发票信息请求响应
message DelUserReceiptInfoRsp {
	optional MessageHead Header = 1; // 消息头
	optional int32 RetCode = 2; // 返回码
	optional string RetDesc = 3; // 描述信息
}

// 签约请求
message t2bBankSignReq {
	optional MessageHead Header = 1;
		required uint64 ExtOperatorID = 2; // 外部操作流水号
		optional string ExchId = 3; // 交易所编号
		optional string TradeDate = 4; // 交易所业务日期
		optional string ExchTicket = 5; // 交易所流水号
		required string AccountCode = 6; // 账户
		required string AccountName = 7; // 客户名称
		required string CusBankID = 8; // 托管银行编号
		required int32 OperateType = 9; // 变更类型[1-增加;2-修改;4-绑卡;
		required int32 IsForce = 10; // 是否强制[0-否;1-是]强制，只更新中心签约信息，不发送银行。用于银行信息不一致的情况
		optional string Currency = 11; // 币种
		optional int32 AccountType = 12; // 账户类型[1-对私;2-对公]
		required string OpenBankAccId = 13; // 银行卡行号
		optional string ForceSignBankAccountNo = 14; // 银行账户[强制签约时填写]
		optional string ForceSignBankAccountName = 15; // 银行账户名称[强制签约时填写]
		required string BankAccountNo = 16; // 银行账户
		optional string BankAccountName = 17; // 银行账户名称
		required string ExBankName = 18; // 开户行名称
		optional string OpenBankNo = 19; // 开户支行编号
		optional string OpenBankName = 20; // 开户支行名称
		required string CertType = 21; // 证件类型
		required string CertID = 22; // 证件号码
		optional string BankAccountPWD = 23; // 银行账户密码
		optional string AgentName = 24; // 授权代理人姓名
		optional int32 AgentCertType = 25; // 授权代理人证件类型
		optional string AgentCertID = 26; // 授权代理人证件号
		optional int32 BankAccountType = 27; // 银行账户类型
		optional string BankProvince = 28; // 开户银行所在省份
		optional string BankCity = 29; // 开户银行所在市
		optional int32 BankCardType = 30; // 银行卡类型
		optional string MobilePhone = 31; // 移动电话
		optional string IdentifyCode = 32; // 验证码
		optional string email = 33; // 电子邮箱
		optional string extend_info = 34; // 扩展信息（JSON串，参考配置要求进行填充）
}

// 签约应答
message t2bBankSignRsp {
	optional MessageHead Header = 1; // 消息头
	optional int32 RetCode = 2; // 返回码
	optional string RetDesc = 3; // 描述信息
		optional uint64 ExtOperatorID = 4; // 外部操作流水号
		optional string AccountCode = 5; // 账户
		optional string NetAddr = 6; // 网络地址（当这里有网址时，应自动跳转网页）
		optional int32 Status = 7; // 状态（0成功,其他数值参考银行服务的错误码）
		required string ExchTicket = 8; // 交易所流水号
		optional string ExchId = 9; // 交易所编号
		optional string TradeDate = 10; // 交易所业务日期
		optional string CenterTicket = 11; // 中心流水号
		optional string CenterErrCode = 12; // 返回码
		optional string CenterErrMsg = 13; // 返回结果说明
		optional string bankChildAcc = 14; // 银行账号
		optional string bankChildAccName = 15; // 银行账户名
		optional string BankId = 16; // 银行卡行号
		optional string BankAccNum = 17; // 银行卡号
		optional string BankAccName = 18; // 银行卡户名
}

// 解约请求
message t2bBankCancelSignReq {
	optional MessageHead Header = 1;
		required uint64 ExtOperatorID = 2; // 外部操作流水号
		optional string ExchId = 3; // 交易所编号
		required string AccountCode = 4; // 账户
		required string CusBankID = 5; // 托管银行编号
		required int32 IsForce = 6; // 是否强制
		optional string Currency = 7; // 币种
		optional string TradeDate = 8; // 交易所业务日期
		optional string ExchTicket = 9; // 交易所流水号
		optional string BankChildAcc = 10; // 银行子账号
		optional string BankChildAccName = 11; // 银行子账号名
}

// 解约应答
message t2bBankCancelSignRsp {
	optional MessageHead Header = 1; // 消息头
	optional int32 RetCode = 2; // 返回码
	optional string RetDesc = 3; // 描述信息
		optional uint64 ExtOperatorID = 4; // 外部操作流水号
		optional string AccountCode = 5; // 账户
		optional string NetAddr = 6; // 网络地址（当这里有网址时，应自动跳转网页）
		optional int32 Status = 7; // 状态（0成功,其他数值参考银行服务的错误码）
		required string ExchTicket = 8; // 交易所流水号
		optional string ExchId = 9; // 交易所编号
		optional string TradeDate = 10; // 交易所业务日期
		optional string CenterTicket = 11; // 中心流水号
		optional string CenterErrCode = 12; // 返回码
		optional string CenterErrMsg = 13; // 返回结果说明
}

// 出金请求
message t2bBankWithdrawReq {
	optional MessageHead Header = 1;
		required uint64 ExtOperatorID = 2; // 外部操作流水号
		optional string ExchId = 3; // 交易所编号
		required string AccountCode = 4; // 资金账户
		required string CusBankID = 5; // 托管银行编号
		required string Currency = 6; // 币种
		optional int32 AccountType = 7; // 账户类型
		optional string BankChildAccount = 8; // 银行子账号
		optional string BankChildAccountName = 9; // 银行子账号名
		optional string OpenCardBankId = 10; // 银行卡行号
		optional string BankAccoutNum = 11; // 银行卡号
		optional string BankAccoutName = 12; // 银行卡户名
		required double Amount = 13; // 出金金额
		optional string AppDateTime = 14; // 申请日期和时间
		optional string OldTaPWD = 15; // 资金密码
		optional string Desc = 16; // 备注
		optional string IdentifyCode = 17; // 验证码
		optional string BranchBankName = 18; // 收款支行名称
		optional string extend_info = 19; // 扩展信息（JSON串，参考配置要求进行填充）
		optional string Remark = 20; // 备注
		optional string ExchTicket = 21; // 交易所流水号
}

// 出金应答
message t2bBankWithdrawRsp {
	optional MessageHead Header = 1; // 消息头
	optional int32 RetCode = 2; // 返回码
	optional string RetDesc = 3; // 描述信息
		optional uint64 ExtOperatorID = 4; // 外部操作流水号
		optional int32 Status = 5; // 状态（0成功,其他数值参考银行服务的错误码）
		required string ExchTicket = 6; // 交易所流水号
		optional string ExchId = 7; // 交易所编号
		optional string TradeDate = 8; // 交易日
		optional string CenterTicket = 9; // 中心流水号
		optional string CenterErrCode = 10; // 中心返回码
		optional string CenterErrMsg = 11; // 中心返回结果说明
		optional string CerterCheckDate = 12; // 中心对账日期
		optional string NetAddr = 13; // 网络地址（当这里有网址时，应自动跳转网页）
}

// 入金请求
message t2bBankDepositReq {
	optional MessageHead Header = 1;
		required uint64 ExtOperatorID = 2; // 外部操作流水号
		required string CusBankID = 3; // 托管银行编号
		optional string ExchId = 4; // 交易所编号
		optional string TradeDate = 5; // 交易日
		optional string ExchTicket = 6; // 交易所流水号
		required string AccountCode = 7; // 资金账户
		optional string BusinessNo = 8; // 银行业务编号
		optional string BankChildAccount = 9; // 银行子账号
		optional string BankChildAccountName = 10; // 银行子账号名
		optional string OldTaPWD = 11; // 资金密码
		required double Amount = 12; // 金额
		required string Currency = 13; // 币种
		optional string Remark = 14; // 备注
		optional string OpenCardBankId = 15; // 银行卡行号
		optional string BankAccoutNum = 16; // 银行卡号
		optional string BankAccoutName = 17; // 银行卡户名
		optional string extend_info = 18; // 扩展信息（JSON串，参考配置要求进行填充）
}

// 入金应答
message t2bBankDepositRsp {
	optional MessageHead Header = 1; // 消息头
	optional int32 RetCode = 2; // 返回码
	optional string RetDesc = 3; // 描述信息
		optional uint64 ExtOperatorID = 4; // 外部操作流水号
		optional int32 Status = 5; // 状态（0成功,其他数值参考银行服务的错误码）
		required string ExchTicket = 6; // 交易所流水号
		optional string ExchId = 7; // 交易所编号
		optional string TradeDate = 8; // 交易日
		optional string CenterTicket = 9; // 中心流水号
		optional string CenterErrCode = 10; // 中心返回码
		optional string CenterErrMsg = 11; // 中心返回结果说明
		optional string CerterCheckDate = 12; // 中心对账日期
		optional string NetAddr = 13; // 网络地址（当这里有网址时，应自动跳转网页）
}

// 仓单服务公共协议结构
message WRCommon {
	optional uint64 UserID = 1; // 用户ID
	optional uint64 RelatedOrderID = 2; // 关联ID
	optional uint64 BusinessID = 3; // 业务ID
	optional uint64 TradeID = 4; // 成交ID
	optional uint64 AccountID = 5; // 账号ID
}

// 仓库申请请求 0 29 141
message WarehouseApplyReq {
	optional MessageHead Header = 1; // MessageHead
	optional uint64 userid = 2; // uint64 用户ID
	optional int32 type = 3; // int32 类型 1 新增 2 修改
	optional uint64 warehouseid = 4; // uint64 仓库ID
	optional string warehousecode = 5; // string 仓库代码
	optional string warehousename = 6; // string 仓库名称
	optional int32 warehousetype = 7; // int32 仓库类型 - 1 厂库  2 自有库  3 合作库
	optional uint64 provinceid = 8; // uint64 省
	optional uint64 cityid = 9; // uint64 市
	optional int32 districtid = 10; // int32 区
	optional string address = 11; // string 详细地址
	optional string contactname = 12; // string 联系人
	optional string contactnum = 13; // string 联系电话
}

// 仓库申请请求 0 29 142
message WarehouseApplyRsp {
	optional MessageHead Header = 1; // MessageHead 消息头
	optional int32 RetCode = 2; // int32 返回码
	optional string RetDesc = 3; // string 描述信息
	optional uint64 warehouseid = 4; // uint64 仓库ID
}

// 违约申请请求 0 20 9
message PerformanceContractedApplyReq {
	optional MessageHead Header = 1; // MessageHead
	optional uint64 PerformancePlanID = 2; // uint64 履约计划ID
	optional uint32 BreachType = 3; // uint32 违约方类型
	optional uint64 Applicant = 4; // uint64 违约申请人
	optional string ApplyRemark = 5; // string 申请备注
	optional string Attachment = 6; // string 附件
}

// 违约申请应答 0 20 10
message PerformanceContractedApplyRsp {
	optional MessageHead Header = 1; // MessageHead 消息头
	optional int32 RetCode = 2; // int32 返回码
	optional string RetDesc = 3; // string 描述信息
	optional uint64 PerformancePlanID = 4; // uint64 履约计划ID
}

// 延期申请请求 0 20 5
message PerformanceDelayApplyReq {
	optional MessageHead Header = 1; // MessageHead
	optional uint64 PerformancePlanStepID = 2; // uint64 履约计划步骤ID
	optional uint32 delaydays = 3; // uint32 申请延期天数
	optional uint64 applicant = 4; // uint64 申请人
	optional string applyremark = 5; // string 申请备注
}

// 延期申请应答 0 20 6
message PerformanceDelayApplyRsp {
	optional MessageHead Header = 1; // MessageHead 消息头
	optional int32 RetCode = 2; // int32 返回码
	optional string RetDesc = 3; // string 描述信息
	optional uint64 PerformancePlanStepID = 4; // uint64 履约计划步骤ID
	optional uint64 applicant = 5; // uint64 申请人
}

// 履约手动确认请求 0 20 3
message PerformanceManualConfirmReq {
	optional MessageHead Header = 1; // MessageHead
	optional uint64 PerformancePlanStepID = 2; // uint64 履约计划步骤ID
	optional double OverShortAmount = 3; // double 溢短金额
	optional uint32 PerformanceExecuteSide = 4; // uint32 履约步骤执行方 1买方 2 卖方
	optional string StepRemark = 5; // string 步骤备注
	optional double OverShortQty = 6; // double 溢短数量
	optional double ExpressFee = 7; // double 运费金额
}

// 履约手动确认应答 0 20 4
message PerformanceManualConfirmRsp {
	optional MessageHead Header = 1; // MessageHead 消息头
	optional int32 RetCode = 2; // int32 返回码
	optional string RetDesc = 3; // string 描述信息
	optional uint64 PerformancePlanStepID = 4; // uint64 履约计划步骤ID
}

// 履约修改联络信息请求 0 20 15
message PerformanceModifyContactReq {
	optional MessageHead Header = 1; // MessageHead
	optional uint64 PerformancePlanID = 2; // uint64 履约计划ID
	optional uint64 AccountID = 3; // uint64 账号
	optional string ContactInfo = 4; // string 联络信息
}

// 履约修改联络信息回应 0 20 16
message PerformanceModifyContactRsp {
	optional MessageHead Header = 1; // MessageHead 消息头
	optional int32 RetCode = 2; // int32 返回码
	optional string RetDesc = 3; // string 描述信息
	optional uint64 PerformancePlanID = 4; // uint64 履约计划ID
	optional uint64 AccountID = 5; // uint64 账号
}

// 钻石属性
message GZWRStandardExInfo {
	optional uint32 ZSCategory = 1; // 钻石分类,必填
		optional uint32 ZSCurrencyType = 2; // 货币类型,必填
		optional string GoodsNo = 3; // 商品编号,必填
		optional uint64 WarehouseID = 4; // 仓库ID,必填
		optional double MarketPrice = 5; // 市场价，两位小数
		optional string ImagePath = 6; // 商品照片
		optional string WRPath = 7; // 仓单扫描件
		optional string Remark = 8; // 备注
		optional double Price = 9; // 总价(价格)，两位小数
		optional double Weight = 10; // 总重量(克拉重量)，两位小数
		optional double WeightAvg = 11; // 平均单颗重量
		repeated uint32 ZSShapeType = 12; // 形状,1个或多个形状
		optional uint32 ZSColorType1 = 13; // 颜色1
		optional uint32 ZSColorType2 = 14; // 颜色2
		optional uint32 ZSClarityType1 = 15; // 净度1
		optional uint32 ZSClarityType2 = 16; // 净度2
		optional uint32 ZSCutType1 = 17; // 切工1
		optional uint32 ZSCutType2 = 18; // 切工2
		optional uint32 ZSSymmetryType1 = 19; // 对称度1
		optional uint32 ZSSymmetryType2 = 20; // 对称度2
		optional uint32 ZSPolishType1 = 21; // 抛光度1
		optional uint32 ZSPolishType2 = 22; // 抛光度2
		optional uint32 ZSFluorescenceType1 = 23; // 荧光1
		optional uint32 ZSFluorescenceType2 = 24; // 荧光2
		optional double Size1 = 25; // 尺寸1
		optional double Size2 = 26; // 尺寸2
		optional double Size3 = 27; // 尺寸3
		optional uint32 ZSCertType = 28; // 证书类型
		optional string CerNo = 29; // 证书编号
		repeated uint32 ZSCrystalType = 30; // 晶型范围
		optional string CPCertNo = 31; // 金伯利证书编号
		optional string Origin = 32; // 原产地
		optional string KPWeight = 33; // 金伯利证书重量
		optional string KPPath = 34; // 金伯利证书图片
		optional uint32 ZSStyleType = 35; // 款式
		optional string StoneDesc = 36; // 配石描述
		optional string SettingMaterial = 37; // 镶嵌材料
		optional uint32 ZSCZColor1Type = 38; // 彩钻颜色1
		optional uint32 ZSCZColor2Type = 39; // 彩钻颜色2
		optional uint32 ZSCZColor3Type = 40; // 彩钻颜色3
}

// 新增钻石商品接口请求
message AddZSGoodsReq {
	optional MessageHead Header = 1;
	optional uint64 UserID = 2; // 用户ID，必填
		optional uint64 AccountID = 3; // 资金账户ID
		optional GZWRStandardExInfo GZ_WRStandardExInfo = 4; // 钻石属性，对象中前4个字段必填
		optional uint32 AddType = 5; // 类型1：新增商品2：新增并上架，必填
		optional int64 PerformanceTemplateID = 6; // 履约模板ID,如果AddType=2时必填
		optional uint64 MarketID = 7; // 市场ID必填
		optional uint32 ClientType = 8; // 终端类型
		optional uint32 OrderSrc = 9; // 委托来源
		optional string ClientSerialNo = 10; // 客户端流水号
}

// 新增钻石商品接口响应
message AddZSGoodsRsp {
	optional MessageHead Header = 1; // 消息头
	optional int32 RetCode = 2; // 返回码
	optional string RetDesc = 3; // 描述信息
		optional uint64 UserID = 4; // 用户ID
		optional uint64 AccountID = 5; // 资金账户ID
		optional uint64 WRStandardID = 6; // 现货商品ID
		optional uint64 WRFactorTypeID = 7; // 仓单要素类型ID
		optional uint64 LadingBillID = 8; // 提单ID
		optional uint32 SubNum = 9; // 提单子单号
		optional string ClientSerialNo = 10; // 客户端流水号
}

// 商品收藏操作接口请求
message GoodsFavoriteOperateReq {
	optional MessageHead Header = 1;
		optional uint32 UserID = 2; // 用户ID，必填
		optional uint64 WRTradeOrderID = 3; // 委托单ID，必填
		optional uint32 OperateType = 4; // 操作类型，1:添加2:删除,必填
		optional uint32 ClientType = 5; // 终端类型
		optional uint32 MarketID = 6; // 市场ID,必填
		optional string ClientSerialNo = 7; // 客户端流水号
}

// 商品收藏操作接口应答
message GoodsFavoriteOperateRsp {
	optional MessageHead Header = 1; // 消息头
	optional int32 RetCode = 2; // 返回码
	optional string RetDesc = 3; // 描述信息
		optional uint32 UserID = 4; // 用户ID
		optional uint64 WRTradeOrderID = 5; // 委托单ID
		optional string ClientSerialNo = 6; // 客户端流水号
}

// 钻石买挂牌属性
message GZBuyOrderDetailExInfo {
    optional uint64 UserID = 1; // 用户ID
    optional uint64 AccountID = 2; // 资金账户ID
    optional uint32 ZSCategory = 3; // 钻石分类
    repeated uint32 ZSCurrencyType = 4; // 货币类型
    repeated uint32 ZSShapeType = 5; // 形状
    repeated uint32 ZSColorType = 6; // 颜色
    repeated uint32 ZSClarityType = 7; // 净度
    repeated uint32 ZSCutType = 8; // 切工
    repeated uint32 ZSSymmetryType = 9; // 对称度
    repeated uint32 ZSPolishType = 10; // 抛光度
    repeated uint32 ZSFluorescenceType = 11; // 荧光
    repeated double Size = 12; // 尺寸
    repeated uint32 ZSCrystalType = 13; // 晶型
    optional string Origin = 14; // 原产地
    repeated uint32 ZSStyleType = 15; // 款式
    repeated uint32 ZSCZColor1Type = 16; // 彩钻颜色1
    repeated uint32 ZSCZColor2Type = 17; // 彩钻颜色2
    repeated uint32 ZSCZColor3Type = 18; // 彩钻颜色3
    optional string Remark = 19; // 备注
    repeated uint64 WarehouseIDs = 20; // 仓库ID
}

// 钻石买挂牌接口请求
message ZSBuyOrderListingReq {
	optional MessageHead Header = 1;
	optional uint32 UserID = 2; // 用户ID，必填
	optional uint64 AccountID = 3; // 资金账号，必填
	optional GZBuyOrderDetailExInfo GZ_BuyOrderDetailExInfo = 4; // 钻石买挂牌属性
	optional int64 PerformanceTemplateID = 5; // 履约计划模板ID
	optional uint32 MarketID = 6; // 市场ID,必填
	optional uint32 OrderSrc = 7; // 委托来源
	optional string ClientOrderTime = 8; // 客户端委托时间
	optional uint32 ClientType = 9; // 终端类型
	optional string ClientSerialNo = 10; // 客户端流水号
}

// 钻石买挂牌接口应答
message ZSBuyOrderListingRsp {
	optional MessageHead Header = 1; // 消息头
	optional int32 RetCode = 2; // 返回码
	optional string RetDesc = 3; // 描述信息
		optional uint32 UserID = 4; // 用户ID
		optional uint64 AccountID = 5; // 资金账号
		optional uint64 WRTradeOrderID = 6; // 仓单贸易委托单ID
		optional string OrderTime = 7; // 接收委托交易的时间
		optional string ClientSerialNo = 8; // 客户端流水号
}

// 钻石卖挂牌接口请求
message ZSSellOrderListingReq {
	optional MessageHead Header = 1;
		optional uint64 UserID = 2; // 用户ID，必填
		optional uint64 AccountID = 3; // 资金账户ID，必填
		optional uint64 WRStandardID = 4; // 现货商品ID，必填
		optional uint64 WRFactorTypeID = 5; // 仓单要素类型ID，必填
		optional double OrderQty = 6; // 挂牌数量,必填2位小数，为WeigthAvg的整数倍
		optional uint64 LadingBillID = 7; // 提单ID,必填
		optional uint32 SubNum = 8; // 提单子单号,必填
		optional int64 PerformanceTemplateID = 9; // 履约计划模板ID
		optional uint32 TimevalidType = 10; // 时间有效类型
		optional string ValidTime = 11; // 有效期限
		optional uint32 OrderSrc = 12; // 委托来源
		optional string ClientSerialNo = 13; // 客户端流水号
		optional string ClientOrderTime = 14; // 客户端委托时间
		optional uint32 ClientType = 15; // 终端类型
		optional uint64 MarketID = 16; // 市场ID,必填
}

// 钻石卖挂牌接口响应
message ZSSellOrderListingRsp {
	optional MessageHead Header = 1; // 消息头
	optional int32 RetCode = 2; // 返回码
	optional string RetDesc = 3; // 描述信息
		optional uint32 UserID = 4; // 用户ID
		optional uint64 AccountID = 5; // 资金账号
		optional uint64 WRTradeOrderID = 6; // 仓单贸易委托单ID
		optional uint64 FreezeQty = 7; // 冻结数量
		optional string OrderTime = 8; // 接收委托交易的时间
		optional string ClientSerialNo = 9; // 客户端流水号
}

// 钻石买摘牌接口请求
message ZSBuyOrderDestingReq {
	optional MessageHead Header = 1;
	optional uint32 UserID = 2; // 用户ID，必填
	optional uint64 AccountID = 3; // 资金账号，必填
	optional uint64 RelatedWRTradeOrderID = 4; // 卖委托单号，必填
	optional double OrderQty = 5; // 委托数量,必填2位小数，为WeigthAvg的整数倍
	optional uint32 OrderSrc = 6; // 委托来源
	optional string ClientSerialNo = 7; // 客户端流水号
	optional string ClientOrderTime = 8; // 客户端委托时间
	optional uint32 ClientType = 9; // 终端类型
	optional uint64 OperatorID = 10; // 操作员账号ID
	optional uint64 MarketID = 11; // 市场ID,必填
}

// 钻石买摘牌接口响应
message ZSBuyOrderDestingRsp {
	optional MessageHead Header = 1; // 消息头
	optional int32 RetCode = 2; // 返回码
	optional string RetDesc = 3; // 描述信息
		optional uint32 UserID = 4; // 用户ID
		optional uint64 AccountID = 5; // 资金账号
		optional uint64 WRTradeOrderID = 6; // 仓单贸易委托单ID
		optional uint64 RelatedWRTradeOrderID = 7; // 关联委托单号(摘牌委托关联挂牌委托单ID)
		optional double FreezeAmount = 8; // 冻结货款
		optional string OrderTime = 9; // 接收委托交易的时间
		optional string ClientSerialNo = 10; // 客户端流水号
}

// 钻石卖摘牌申请接口请求
message ZSSellOrderDestingApplyReq {
	optional MessageHead Header = 1;
		optional uint64 UserID = 2; // 用户ID，必填
		optional uint64 AccountID = 3; // 资金账户ID，必填
		optional uint64 BuyWRTradeOrderID = 4; // 买挂牌委托单ID,必填
		optional uint64 WRStandardID = 5; // 现货商品ID，必填
		optional uint64 WRFactorTypeID = 6; // 仓单要素类型ID，必填
		optional double ApplyQty = 7; // 申请数量,必填，2位小数
		optional double ApplyPrice = 8; // 申请价格，必填，2位小数
		optional uint64 LadingBillID = 9; // 提单ID,必填
		optional uint32 SubNum = 10; // 提单子单号,必填
		optional string ApplyRemark = 11; // 备注
		optional uint32 ClientType = 12; // 终端类型
		optional string ClientSerialNo = 13; // 客户端流水号
		optional uint64 MarketID = 14; // 市场ID,必填
}

// 钻石卖摘牌申请接口响应
message ZSSellOrderDestingApplyRsp {
	optional MessageHead Header = 1; // 消息头
	optional int32 RetCode = 2; // 返回码
	optional string RetDesc = 3; // 描述信息
		optional uint32 UserID = 4; // 用户ID
		optional uint64 AccountID = 5; // 资金账号
		optional uint64 ApplyID = 6; // 仓单贸易委托单ID
		optional string ClientSerialNo = 7; // 客户端流水号
}

// 钻石卖摘牌申请操作接口请求
message ZSSellOrderDestingApplyOperateReq {
	optional MessageHead Header = 1;
		optional uint32 UserID = 2; // 用户ID，必填
		optional uint64 AccountID = 3; // 资金账号
		optional uint64 SellDelistingApplyID = 4; // 卖摘牌申请ID，必填
		optional string AuditRemark = 5; // 备注
		optional uint32 OperateType = 6; // 操作类型，1：撤销2:拒绝
		optional uint32 MarketID = 7; // 市场ID,必填
		optional uint32 ClientType = 8; // 终端类型
		optional uint32 OrderSrc = 9; // 委托来源
		optional string ClientSerialNo = 10; // 客户端流水号
}

// 钻石卖摘牌申请操作接口应答
message ZSSellOrderDestingApplyOperateRsp {
	optional MessageHead Header = 1; // 消息头
	optional int32 RetCode = 2; // 返回码
	optional string RetDesc = 3; // 描述信息
		optional uint32 UserID = 4; // 用户ID
		optional uint64 AccountID = 5; // 资金账号
		optional uint64 SellDelistingApplyID = 6; // 卖摘牌申请ID
		optional uint64 WRTradeOrderID = 7; // 仓单贸易委托单ID
		optional double FreezeAmount = 8; // 冻结货款
		optional string OrderTime = 9; // 接收委托交易的时间
		optional string ClientSerialNo = 10; // 客户端流水号
}

// 买摘牌询价接口请求
message ZSBuyOrderDestingNegPriceReq {
	optional MessageHead Header = 1;
	optional uint32 UserID = 2; // 用户ID，必填
	optional uint64 AccountID = 3; // 资金账号，必填
	optional uint64 RelatedOrderID = 4; // 卖委托单号，必填
	optional double OrderQty = 5; // 议价数量，2位小数，必填
	optional double ApplyPrice = 6; // 协议价格，2位小数，必填
	optional uint32 OrderSrc = 7; // 委托来源
	optional string ClientSerialNo = 8; // 客户端流水号
	optional string ClientOrderTime = 9; // 客户端委托时间
	optional uint32 ClientType = 10; // 终端类型
	optional uint64 OperatorID = 11; // 操作员账号ID
	optional uint32 MarketID = 12; // 市场ID,必填
	optional string ApplyRemark = 13; // 申请备注
}

// 买摘牌询价接口应答
message ZSBuyOrderDestingNegPriceRsp {
	optional MessageHead Header = 1; // 消息头
	optional int32 RetCode = 2; // 返回码
	optional string RetDesc = 3; // 描述信息
		optional uint32 UserID = 4; // 用户ID
		optional uint64 AccountID = 5; // 资金账号
		optional uint64 WRTradeOrderID = 6; // 摘牌委托单ID
		optional uint64 WRBargainID = 7; // 议价申请单ID
		optional string OrderTime = 8; // 接收委托交易的时间
		optional string ClientSerialNo = 9; // 客户端流水号
}

// 买摘牌询价操作接口请求
message ZSBuyOrderDestingNegPriceOperateReq {
	optional MessageHead Header = 1;
		optional uint32 UserID = 2; // 用户ID，必填
		optional uint64 AccountID = 3; // 资金账号，必填
		optional uint64 WRBargainID = 4; // 议价申请单ID，必填
		optional string AuditRemark = 5; // 备注
		optional uint32 OperateType = 6; // 操作类型，1：撤销2:拒绝
		optional uint32 MarketID = 7; // 市场ID,必填
		optional uint32 ClientType = 8; // 终端类型
		optional uint32 OrderSrc = 9; // 委托来源
		optional string ClientSerialNo = 10; // 客户端流水号
}

// 买摘牌询价操作接口应答
message ZSBuyOrderDestingNegPriceOperateRsp {
	optional MessageHead Header = 1; // 消息头
	optional int32 RetCode = 2; // 返回码
	optional string RetDesc = 3; // 描述信息
		optional uint32 UserID = 4; // 用户ID
		optional uint64 AccountID = 5; // 资金账号
		optional uint64 WRBargainID = 6; // 卖委托单号
		optional string ClientSerialNo = 7; // 客户端流水号
}

// 挂牌撤单请求
message WRListingCancelOrderReq {
	optional MessageHead Header = 1;
		optional uint32 UserID = 2; // 用户ID
		optional uint64 AccountID = 3; // 资金账号
		optional uint64 OldWRTradeOrderID = 4; // 目标仓单贸易委托单ID
		optional uint32 OrderSrc = 5; // 委托来源
		optional string ClientSerialNo = 6; // 客户端流水号
		optional string ClientOrderTime = 7; // 客户端委托时间
		optional uint32 ClientType = 8; // 终端类型
		optional uint64 OperatorID = 9; // 操作员账号ID
		optional uint32 BuyOrSell = 10; // 买卖方向
		optional uint64 WRID = 11; // 仓单ID,卖的时候填写
}

// 挂牌撤单应答
message WRListingCancelOrderRsp {
	optional MessageHead Header = 1; // 消息头
	optional int32 RetCode = 2; // 返回码
	optional string RetDesc = 3; // 描述信息
		optional uint64 WRTradeCancelID = 4; // 仓单贸易撤单号
		optional uint64 OldWRTradeOrderID = 5; // 目标仓单贸易委托单ID
		optional uint32 UserID = 6; // 用户ID
		optional uint64 AccountID = 7; // 资金账号
		optional uint64 CancelQty = 8; // 撤单数量
		optional string OrderTime = 9; // 接受撤单的时间
		optional string ClientSerialNo = 10; // 客户端流水号
}

// 钻石出库申请接口请求
message ReceiptZSOutApplyReq {
	optional MessageHead Header = 1;
		optional WRCommon Common = 2; // 
		optional uint64 UserID = 3; // 用户ID，必填
		optional uint64 AccountID = 4; // 用户帐户ID
			optional uint64 WRStandardID = 5; // 现货品种ID
		optional uint32 WarehouseID = 6; // 仓库ID
		optional string Mobile = 7; // 申请人手机号
		optional string AppointmentDate = 8; // 预约日期
		optional int32 AppointmentModel = 9; // 预约方式:1-物流3-自提
		optional uint64 CountryID = 10; // 国家
		optional uint64 ProvinceID = 11; // 省
		optional uint64 DistrictID = 12; // 区
		optional uint64 CityID = 13; // 市
		optional string Address = 14; // 详细地址
		optional string ContactName = 15; // 收货人提货人
		optional string ContactNum = 16; // 收货人提货人手机
		optional string AppointmentRemark = 17; // 预约备注
		optional uint64 LadingBillID = 18; // 提单ID，必填
		optional uint32 SubNum = 19; // 提单子单号，必填
		optional double Qty = 20; // 出库数量，两位小数，必填
		optional string Remark = 21; // 备注
		optional uint32 ApplyType = 22; // 申请类型1:会员申请2：平台申请
		optional uint32 ClientType = 23; // 终端类型
		optional string ClientTicket = 24; // 客户端流水号
}

// 钻石出库申请接口响应
message ReceiptZSOutApplyRsp {
	optional MessageHead Header = 1; // 消息头
	optional int32 RetCode = 2; // 返回码
	optional string RetDesc = 3; // 描述信息
		optional WRCommon Common = 4; // 
		optional uint64 ApplyID = 5; // 申请ID
		optional string ClientTicket = 6; // 客户端流水号
}