package tmall

import "time"

type TradeGetOne struct {
	SellerNick           string      `json:"seller_nick"`
	BuyerNick            string      `json:"buyer_nick"`
	Title                string      `json:"title"`
	Type                 string      `json:"type"`
	Created              time.Time   `json:"created"`
	SID                  string      `json:"sid"`
	TID                  int         `json:"tid"`
	SellerRate           bool        `json:"seller_rate"`
	BuyerRate            bool        `json:"buyer_rate"`
	Status               string      `json:"status"`
	Payment              float64     `json:"payment"`
	DiscountFee          float64     `json:"discount_fee"`
	AdjustFee            float64     `json:"adjust_fee"`
	PostFee              float64     `json:"post_fee"`
	TotalFee             float64     `json:"total_fee"`
	PayTime              time.Time   `json:"pay_time"`
	EndTime              time.Time   `json:"end_time"`
	Modified             time.Time   `json:"modified"`
	ConsignTime          time.Time   `json:"consign_time"`
	ReceivedPayment      float64     `json:"received_payment"`
	CommissionFee        float64     `json:"commission_fee"`
	BuyerMemo            string      `json:"buyer_memo"`
	SellerMemo           string      `json:"seller_memo"`
	AlipayNo             string      `json:"alipay_no"`
	BuyerMessage         string      `json:"buyer_message"`
	PicPath              string      `json:"pic_path"`
	NumIID               int         `json:"num_iid"`
	Price                float64     `json:"price"`
	CODFee               float64     `json:"cod_fee"`
	CODStatus            string      `json:"cod_status"`
	ShippingType         string      `json:"shipping_type"`
	Num                  int         `json:"num"`
	PointFee             int         `json:"point_fee"`
	RealPointFee         int         `json:"real_point_fee"`
	BuyerObtainPointFee  int         `json:"buyer_obtain_point_fee"`
	IsDaixiao            bool        `json:"is_daixiao"`
	IsWT                 bool        `json:"is_wt"`
	ArriveInterval       int         `json:"arrive_interval"`
	ArriveCutTime        string      `json:"arrive_cut_time"`
	ConsignInterval      int         `json:"consign_interval"`
	ServiceTags          ServiceTags `json:"service_tags"`
	O2O                  string      `json:"o2o"`
	O2OGuideID           string      `json:"o2o_guide_id"`
	O2OGuideName         string      `json:"o2o_guide_name"`
	O2OShopID            string      `json:"o2o_shop_id"`
	O2OShopName          string      `json:"o2o_shop_name"`
	O2ODelivery          string      `json:"o2o_delivery"`
	O2OOutTradeID        string      `json:"o2o_out_trade_id"`
	Orders               Orders      `json:"orders"`
	EtSerTime            time.Time   `json:"et_ser_time"`
	EtShopName           string      `json:"et_shop_name"`
	EtVerifiedShopName   string      `json:"et_verified_shop_name"`
	EtPlateNumber        string      `json:"et_plate_number"`
	OrderTaxFee          float64     `json:"order_tax_fee"`
	EticketServiceAddr   string      `json:"eticket_service_addr"`
	O2OETOrderID         string      `json:"o2o_et_order_id"`
	OrderTaxPromotionFee float64     `json:"order_tax_promotion_fee"`
	PMT                  string      `json:"pmtp"`
	BuyerOpenUID         string      `json:"buyer_open_uid"`
}

type ServiceTags struct {
	LogisticsTag []LogisticsTag `json:"logistics_tag"`
}

type LogisticsTag struct {
	OrderID                string                 `json:"order_id"`
	LogisticServiceTagList LogisticServiceTagList `json:"logistic_service_tag_list"`
}

type LogisticServiceTagList struct {
	LogisticServiceTag []LogisticServiceTag `json:"logistic_service_tag"`
}

type LogisticServiceTag struct {
	ServiceTag  string `json:"service_tag"`
	ServiceType string `json:"service_type"`
}

type Orders struct {
	Order []Order `json:"order"`
}

type Order struct {
	Title                   string    `json:"title"`
	PicPath                 string    `json:"pic_path"`
	Price                   float64   `json:"price"`
	NumIID                  int       `json:"num_iid"`
	SKUID                   string    `json:"sku_id"`
	RefundStatus            string    `json:"refund_status"`
	Status                  string    `json:"status"`
	OID                     int       `json:"oid"`
	TotalFee                float64   `json:"total_fee"`
	Payment                 float64   `json:"payment"`
	DiscountFee             float64   `json:"discount_fee"`
	AdjustFee               float64   `json:"adjust_fee"`
	DivideOrderFee          float64   `json:"divide_order_fee"`
	PartMJZDiscount         float64   `json:"part_mjz_discount"`
	SKUPropertiesName       string    `json:"sku_properties_name"`
	ItemMealName            string    `json:"item_meal_name"`
	Num                     int       `json:"num"`
	OuterSKUID              string    `json:"outer_sku_id"`
	OuterIID                string    `json:"outer_iid"`
	BuyerRate               bool      `json:"buyer_rate"`
	SellerRate              bool      `json:"seller_rate"`
	SellerType              string    `json:"seller_type"`
	IsDaixiao               bool      `json:"is_daixiao"`
	TicketOuterID           string    `json:"ticket_outer_id"`
	TicketExpdateKey        string    `json:"ticket_expdate_key"`
	IsWWW                   bool      `json:"is_www"`
	StoreCode               string    `json:"store_code"`
	TMserSPUCode            string    `json:"tmser_spu_code"`
	EtSerTime               time.Time `json:"et_ser_time"`
	EtShopName              string    `json:"et_shop_name"`
	EtVerifiedShopName      string    `json:"et_verified_shop_name"`
	EtPlateNumber           string    `json:"et_plate_number"`
	SubOrderTaxFee          float64   `json:"sub_order_tax_fee"`
	SubOrderTaxRate         float64   `json:"sub_order_tax_rate"`
	ZhengjiStatus           string    `json:"zhengji_status"`
	SubOrderTaxPromotionFee float64   `json:"sub_order_tax_promotion_fee"`
	TaxFree                 bool      `json:"tax_free"`
	TaxCouponDiscount       float64   `json:"tax_coupon_discount"`
	SpecialRefundType       string    `json:"special_refund_type"`
	IsDevalueFee            bool      `json:"is_devalue_fee"`
}

type DrawerInput struct {
	AmountNumber  int64     // 充值数量
	AccountNumber string    // 充值账号
	Amount        float64   // 充值金额
	CreatedAt     time.Time // 充值时间
}
