package constants

// 货币
type Currency string

const (
	Usd Currency = "usd"
)

// 金额单位
type AmountUnit interface{}

// 汇率单位
type ExchangeRateUnit interface{}

// 交易方式
type PayMethods string

const (
	Card PayMethods = "CARD"
	Visa PayMethods = "VISA"
)

// 支付状态
type PayStatusCode int64

const (
	PayStatusUnpaid   PayStatusCode = 10 //10,未支付
	PayStatusPaid     PayStatusCode = 20 //20,已支付
	PayStatusRefunded PayStatusCode = 30 //30,已退款
)

// 订单状态
type OrderStatusCode int64

const (
	ORDERSTATUSUNPAIDDEPOSIT                OrderStatusCode = 0     // 0,未支付定金
	ORDERSTATUSDIRECTMAILORDERED            OrderStatusCode = 10100 // 10100,直邮单--已下单
	ORDERSTATUSDIRECTMAILCANCEL             OrderStatusCode = 10101 // 10101,直邮单--已取消
	ORDERSTATUSDIRECTMAILSTARTPRODUCTION    OrderStatusCode = 10200 // 10200,直邮单--开始生产
	ORDERSTATUSDIRECTMAILCOMPLETEPRODUCTION OrderStatusCode = 10300 // 10300,直邮单--生产完成
	ORDERSTATUSDIRECTMAILSHIPPED            OrderStatusCode = 10400 // 10400,直邮单--已发货
	ORDERSTATUSDIRECTMAILARRIVED            OrderStatusCode = 10500 // 10500,直邮单--已到达
	ORDERSTATUSCLOUDSTOREORDERED            OrderStatusCode = 20100 // 20100,云仓单--已下单
	ORDERSTATUSCLOUDSTORECANCEL             OrderStatusCode = 20101 // 20101,云仓单--已取消
	ORDERSTATUSCLOUDSTORESTARTPRODUCTION    OrderStatusCode = 20200 // 20200,云仓单--开始生产
	ORDERSTATUSCLOUDSTOREOMPLETEPRODUCTION  OrderStatusCode = 20300 // 20300,云仓单--生产完成
	ORDERSTATUSCLOUDSTOREARRIVEDWAREHOUSE   OrderStatusCode = 20400 // 20400,云仓单--直达仓库
)

// 订单状态名称
var OrderStatusMessage map[OrderStatusCode]string

// 支付状态名称
var PayStatusMessage map[PayStatusCode]string

// 订单状态--用户可见
var OrderStatusUser []OrderStatusCode

func init() {
	// 订单状态名称
	PayStatusMessage = make(map[PayStatusCode]string)
	PayStatusMessage[PayStatusUnpaid] = "Paid"
	PayStatusMessage[PayStatusPaid] = "Unpaid"
	PayStatusMessage[PayStatusRefunded] = "Refunded"

	// 订单状态名称
	OrderStatusMessage = make(map[OrderStatusCode]string)
	OrderStatusMessage[ORDERSTATUSUNPAIDDEPOSIT] = "未支付定金"

	OrderStatusMessage[ORDERSTATUSDIRECTMAILORDERED] = "直邮单--已下单"
	OrderStatusMessage[ORDERSTATUSDIRECTMAILSTARTPRODUCTION] = "直邮单--开始生产"
	OrderStatusMessage[ORDERSTATUSDIRECTMAILCOMPLETEPRODUCTION] = "直邮单--生产完成"
	OrderStatusMessage[ORDERSTATUSDIRECTMAILSHIPPED] = "直邮单--已发货"
	OrderStatusMessage[ORDERSTATUSDIRECTMAILARRIVED] = "直邮单--已到达"

	OrderStatusMessage[ORDERSTATUSCLOUDSTOREORDERED] = "云仓单--已下单"
	OrderStatusMessage[ORDERSTATUSCLOUDSTORESTARTPRODUCTION] = "云仓单--开始生产"
	OrderStatusMessage[ORDERSTATUSCLOUDSTOREOMPLETEPRODUCTION] = "云仓单--生产完成"
	OrderStatusMessage[ORDERSTATUSCLOUDSTOREARRIVEDWAREHOUSE] = "云仓单--直达仓库"

	// 订单状态--用户可见
	OrderStatusUser = []OrderStatusCode{
		ORDERSTATUSUNPAIDDEPOSIT,
		ORDERSTATUSDIRECTMAILORDERED, ORDERSTATUSDIRECTMAILSTARTPRODUCTION, ORDERSTATUSDIRECTMAILCOMPLETEPRODUCTION, ORDERSTATUSDIRECTMAILSHIPPED, ORDERSTATUSDIRECTMAILARRIVED,
		ORDERSTATUSCLOUDSTOREORDERED, ORDERSTATUSCLOUDSTORESTARTPRODUCTION, ORDERSTATUSCLOUDSTOREOMPLETEPRODUCTION, ORDERSTATUSCLOUDSTOREARRIVEDWAREHOUSE,
	}
}