package model

import "kami/internal/consts"

// ====================================================================================
// JD Cookie 相关模型结构体
// ====================================================================================

// CreateOrderReq 创建订单请求参数
type CreateOrderReq struct {
	UserOrderId string                         `json:"userOrderId" dc:"用户订单号"`
	Amount      float64                        `json:"amount" dc:"订单金额"`
	Category    consts.RedeemOrderCardCategory `json:"category" dc:"卡券类别"`
}

// CreateOrderResult 创建订单返回结果
type CreateOrderResult struct {
	WxPayUrl  string `json:"wxPayUrl" dc:"微信支付链接"`
	JdOrderId string `json:"jdOrderId" dc:"京东订单号"`
	OrderId   string `json:"orderId" dc:"内部订单号"`
}

// PaymentResult 支付结果
type PaymentResult struct {
	WxPayUrl  string `json:"wxPayUrl" dc:"微信支付链接"`
	JdOrderId string `json:"jdOrderId" dc:"京东订单号"`
	OrderId   string `json:"orderId" dc:"内部订单号"`
}

// CreateNewJdOrderWithRetryReq 创建新的京东订单请求参数
type CreateNewJdOrderWithRetryReq struct {
	UserOrderId string                         `json:"userOrderId" dc:"用户订单号"`
	OrderId     string                         `json:"orderId" dc:"内部订单号"`
	Amount      float64                        `json:"amount" dc:"订单金额"`
	Category    consts.RedeemOrderCardCategory `json:"category" dc:"卡券类别"`
}

// CreateNewJdOrderWithRetryRes 创建新的京东订单返回结果
type CreateNewJdOrderWithRetryRes struct {
	JdOrderId string `json:"jdOrderId" dc:"京东订单号"`
	CookieId  string `json:"cookieId" dc:"Cookie ID"`
	WxPayUrl  string `json:"wxPayUrl" dc:"微信支付链接"`
}

// CreateJdOrderRecordReq 创建京东订单记录请求参数
type CreateJdOrderRecordReq struct {
	JdOrderId     string                         `json:"jdOrderId" dc:"内部订单号"`
	RealJdOrderId string                         `json:"realJdOrderId" dc:"京东客户端返回的真实订单ID"`
	PayId         string                         `json:"payId" dc:"支付ID"`
	CookieId      string                         `json:"cookieId" dc:"使用的Cookie ID"`
	Category      consts.RedeemOrderCardCategory `json:"category" dc:"商品品类"`
	Amount        float64                        `json:"amount" dc:"订单金额"`
	WxPayUrl      string                         `json:"wxPayUrl" dc:"微信支付链接"`
}

// CallJdCreateOrderReq 调用京东下单接口请求参数
type CallJdCreateOrderReq struct {
	JdOrderId string                         `json:"jdOrderId" dc:"京东订单ID"`
	Amount    float64                        `json:"amount" dc:"订单金额"`
	CookieId  string                         `json:"cookieId" dc:"Cookie ID"`
	Category  consts.RedeemOrderCardCategory `json:"category" dc:"商品品类"`
}

// CallJdCreateOrderRes 调用京东下单接口返回结果
type CallJdCreateOrderRes struct {
	RealJdOrderId   string `json:"realJdOrderId" dc:"京东客户端返回的真实订单ID"`
	PayId           string `json:"payId" dc:"支付ID"`
	WxPayUrl        string `json:"wxPayUrl" dc:"微信支付链接"`
	Remark          string `json:"remark" dc:"备注信息"`
	IsStockError    bool   `json:"isStockError" dc:"库存是否失败"`
	IsCkError       bool   `json:"isCkError" dc:"Cookie是否失败"`
	IsInternalError bool   `json:"isInternalError" dc:"内部错误"`
}

// RefreshPaymentUrlReq 刷新支付链接请求参数
type RefreshPaymentUrlReq struct {
	JdOrderId string `json:"jdOrderId" dc:"京东订单ID"`
	PayId     string `json:"payId" dc:"支付ID"`
	CookieId  string `json:"cookieId" dc:"Cookie ID"`
}

// CallJdCheckPaymentReq 调用京东检查支付状态请求参数
type CallJdCheckPaymentReq struct {
	JdOrderId     string                         `json:"jdOrderId" dc:"京东订单ID"`
	RealJdOrderId string                         `json:"realJdOrderId" dc:"京东客户端返回的真实订单ID"`
	CookieValue   string                         `json:"cookieValue" dc:"Cookie值"`
	Category      consts.RedeemOrderCardCategory `json:"category" dc:"商品品类"`
}

// RecordCookieHistoryReq 记录Cookie变更历史请求参数
type RecordCookieHistoryReq struct {
	CookieId     string                  `json:"cookieId" dc:"Cookie ID"`
	ChangeType   consts.CookieChangeType `json:"changeType" dc:"变更类型"`
	StatusBefore consts.JdCookieStatus   `json:"statusBefore" dc:"变更前状态"`
	StatusAfter  consts.JdCookieStatus   `json:"statusAfter" dc:"变更后状态"`
	OrderId      string                  `json:"orderId" dc:"关联的订单号"`
	UserOrderId  string                  `json:"userOrderId" dc:"用户订单号"`
	FailureCount int                     `json:"failureCount" dc:"失败次数"`
	Remark       string                  `json:"remark" dc:"备注信息，存储额外的信息"`
}

// RecordOrderHistoryReq 记录订单变更历史请求参数
type RecordOrderHistoryReq struct {
	OrderId    string                 `json:"orderId" dc:"订单号"`
	ChangeType consts.OrderChangeType `json:"changeType" dc:"变更类型"`
	JdOrderId  string                 `json:"jdOrderId" dc:"京东订单号"`
	Remark     string                 `json:"remark" dc:"备注信息"`
}
