package lakala

const (
	BillTestUrl = "https://test.wsmsd.cn/sit/api/v2/laep/industry"
	BillProdUrl = "https://s2.lakala.com/api/v2/laep/industry"

	BillQuery         = "ewalletBalanceQuery"   // 账户余额查询
	BillDrawD1        = "ewalletWithdrawD1"     // 账户余额D1提现
	BillDrawD1Query   = "ewalletWithdrawQuery"  // 账户余额D1提现结果查询
	BillSettleProfile = "ewallet/settleProfile" // 提款模式设置
	BillSettleQuery   = "ewallet/settleQuery"   // 提款模式查询
)

// QueryBillBalanceReq 账户余额查询请求参数
type QueryBillBalanceReq struct {
	OrgNo      string `json:"orgNo"`      // bmcp机构号	是
	MerchantNo string `json:"merchantNo"` // 商户号 或 receiveNo 或 商户用户编号	是
	PayNo      string `json:"payNo"`      // 账号（若该参数上送，则payType将无效）	否
	PayType    string `json:"payType"`    // 账号类型（01：收款账户，02：付款账户，03：分账商户账户，04：分账接收方账户，05：充值代付账户，06：结算代付账户）- 未上送则默认为01	否
	MgtFlag    string `json:"mgtFlag"`    // （待上线）	账户标志（01:一般户 03:子虚户）- 未上送则默认为01	否
}

// QueryBillBalanceResp 账户余额查询返回参数
type QueryBillBalanceResp struct {
	PayNo        string `json:"payNo"`        // 账号
	PayType      string `json:"payType"`      // 账户类型
	AcctSt       string `json:"acctSt"`       // 账户状态 CLOSE 销户 NORMAL 正常 FREEZE 冻结 STOPPAY 止付
	ForceBalance string `json:"forceBalance"` // 预付余额（单位元）
	HisBalance   string `json:"hisBalance"`
	ReBalance    string `json:"reBalance"`  // 实时余额（单位元）
	CurBalance   string `json:"curBalance"` // 当前可用余额（单位元）
}

// EwalletWithdrawD1Req 账户体现
type EwalletWithdrawD1Req struct {
	OrgNo      string `json:"orgNo"`      // bmcp机构号	是	String(32)	机构号
	MerchantNo string `json:"merchantNo"` // 商户号	是	String(32)	822商户号， SR分账接收方编号
	DrawAmt    string `json:"drawAmt"`    // 提现金额（单位：元）	是	String(32)
	NotifyUrl  string `json:"notifyUrl"`  // 通知地址	否	String(256)
	MerOrderNo string `json:"merOrderNo"` // 商户订单号（商户系统唯一）	否	String(256)
	PayNo      string `json:"payNo"`      // 账号（若该参数上送，则payType将无效）	否	String(32)
	PayType    string `json:"payType"`    // 账号类型（01：收款账户，04：分账接收方账户）未上送则默认为01	是	String(32)	分账接收方提现时需填04
	Remark     string `json:"remark"`     // 备注信息	否	String(64)
	Summary    string `json:"summary"`    // 摘要	否	String(64)
	BankId     string `json:"bankId"`     // 结算银行ID	否	String(32)
}

// EwalletWithdrawQueryReq 提现结果查询请求参数
type EwalletWithdrawQueryReq struct {
	OrgNo      string `json:"orgNo"`      // bmcp机构号
	MerchantNo string `json:"merchantNo"` // 商户号
	DrawJnl    string `json:"drawJnl"`    // 提款流水号（二选一）
	MerOrderNo string `json:"merOrderNo"` // 商户订单号（二选一）
}

type EwalletWithdrawQueryResp struct {
	EwalletId       string `json:"ewalletId"`       // 钱包ID
	DrawJnl         string `json:"drawJnl"`         // 提款流水号
	ReqDate         string `json:"reqDate"`         // 请求日期
	DrawAmt         string `json:"drawAmt"`         // 提款金额（元）：含手续费
	DrawFee         string `json:"drawFee"`         // 手续费（元）
	DrawMode        string `json:"drawMode"`        // 提款模式(D0/D1)
	BatchAutoSettle string `json:"batchAutoSettle"` // 结算模式（01主动提款 02余额自动结算 03 交易自动结算）
	BatchNo         string `json:"batchNo"`         // 自动结算批次号
	AcctNo          string `json:"acctNo"`          // 结算账户号（脱敏）
	AcctName        string `json:"acctName"`        // 结算账户名（脱敏）
	DrawState       string `json:"drawState"`       // 提款状态 DRAW.ACCEPTED 提款已受理 DRAW.FREEZE 提款冻结DRAW.PROCESSING 提款处理中DRAW.SUCCESS 提款成功DRAW.FAILED 提款失败
	Memo            string `json:"memo"`            // 结果信息
	MerOrderNo      string `json:"merOrderNo"`      // 商户订单号
	SettleNo        string `json:"settleNo"`        // 结算流水号
	BankNo          string `json:"bankNo"`          // 银行行号
	NbkName         string `json:"nbkName"`         // 银行名称
	MercId          string `json:"mercId"`          // 商户号
	CompleteTime    string `json:"completeTime"`    // 完成时间
	CreatedTime     string `json:"createdTime"`     // 创建时间
}

// SettleDrawPatternReq 提款模式设置
type SettleDrawPatternReq struct {
	BmcpNo       string `json:"bmcpNo"`       // BMCP机构号	是	String(32)
	MercId       string `json:"mercId"`       // 822商户号 或 receiveNo	是	String(32)
	SettleType   string `json:"settleType"`   // 提款模式（01主动提款 02余额自动结算 03交易自动结算）	是	String(32)
	SettleTime   string `json:"settleTime"`   // 余额自动结算时间（小时）- 默认值：06。如08:00-09:00到账，则传入08。	否	String(2)	针对02余额自动结算生效
	SettleCircle string `json:"settleCircle"` // 交易自动结算周期（D1/T1）	否	String(2)	针对03交易自动结算生效
	PayType      string `json:"payType"`      // 结算账户类型（01收款账户 04 分账接收方账户）	否	String(2)	针对02余额自动结算,03交易自动结算生效
	NotifyUrl    string `json:"notifyUrl"`    // 提款通知URL	否	String(64)	提款模式02，03生效
	RetainedAmt  string `json:"retainedAmt"`  // 留存金额(单位：元)	否	String(64)	提款模式02生效
	Remark       string `json:"remark"`       // 备注	否	String(64)
	Summary      string `json:"summary"`      // 摘要	否	String(64)
}

// EwalletSettleQueryResp 提款模式查询
type EwalletSettleQueryResp struct {
	EwalletId    string `json:"ewalletId"`    // 钱包ID	是
	SettleType   string `json:"settleType"`   // 提款模式（01主动提款 02自动结算03交易自动结算）	是
	SettleTime   string `json:"settleTime"`   // 结算时间（小时）	是
	SettleCircle string `json:"settleCircle"` // 结算周期	否
	PayType      string `json:"payType"`      // 结算账户类型	否
	NotifyUrl    string `json:"notifyUrl"`    // 提款通知URL	否
	RetainedAmt  string `json:"notifyUrl"`    // 留存金额(单位：元)	否
}
