package model

import "time"

type OrderFinancial struct {
	ModelIDCUL

	VendorID       int    `orm:"column(vendor_id)" json:"vendorID"`                             // 平台id
	VendorOrderID  string `orm:"column(vendor_order_id);size(48)" json:"vendorOrderID"`         // 订单ID
	VendorOrderID2 string `orm:"column(vendor_order_id2);size(48);index" json:"vendorOrderID2"` // 订单ID2,饿百独有
	// DeliveryConfirmTime       time.Time                 `orm:"type(datetime);index" json:"deliveryConfirmTime"`               // 订单妥投/完成时间
	ShopPriceMoney            int64                     `json:"shopPriceMoney"`            // 门店价-左右商品在京西的价格总和（报价模式会用到）0
	SalePriceMoney            int64                     `json:"salePriceMoney"`            // 商品标价总额(用户下单满减之前的商品售价)+
	ActualPayMoney            int64                     `json:"actualPayMoney"`            // 用户实际支付金额0
	TotalDiscountMoney        int64                     `json:"totalDiscountMoney"`        // 订单总优惠（订单主体+运费）-
	DiscountMoney             int64                     `json:"discountMoney"`             // 订单主体优惠0
	PointsDeductionMoney      int64                     `json:"pointsDeductionMoney"`      // 积分抵扣金额0
	ReceivableFreight         int64                     `json:"receivableFreight"`         // 订单应收运费0
	FreightMoney              int64                     `json:"freightMoney"`              // 用户支付运费0
	FreightDiscountMoney      int64                     `json:"freightDiscountMoney"`      // 订单运费优惠(商家设置满减discountType == 8)0
	PmFreightDiscountMoney    int64                     `json:"pmFreightDiscountMoney"`    // 订单运费优惠(平台运费优惠discountType == 7/12/15)+
	DistanceFreightMoney      int64                     `json:"distanceFreightMoney"`      // 订单远距离费-
	FreightTipsMoney          int64                     `json:"freightTipsMoney"`          // 订单小费-
	DonationMoney             int64                     `json:"donationMoney"`             // 公益捐款-
	SelfDeliveryDiscountMoney int64                     `json:"selfDeliveryDiscountMoney"` // 平台承担运费补贴（商家自送）+
	PmSkuSubsidyMoney         int64                     `json:"pmSkuSubsidyMoney"`         // 平台对单条sku补贴的金额
	PmSubsidyMoney            int64                     `json:"pmSubsidyMoney"`            // 平台活动补贴（订单主体活动补贴+订单单条sku补贴）1+
	BoxMoney                  int64                     `json:"boxMoney"`                  // order餐盒费1+
	SkuBoxMoney               int64                     `json:"skuBoxMoney"`               // sku餐盒费
	PmMoney                   int64                     `json:"pmMoney"`                   // 平台费1-
	ShopMoney                 int64                     `json:"shopMoney"`                 // 应结金额-第三方平台结算给京西的金额M
	ShopMoneyByCal            int64                     `json:"shopMoneyByCal"`            // 应结金额-通过公式计算平台结给京西的金额M
	JxPmMoney                 int64                     `json:"jxPmMoney"`                 // 京西平台费-
	JxFreightMoney            int64                     `json:"jxFreightMoney"`            // 转自送-->美团/达达订单产生运费0
	JxFreightMoneyByShop      int64                     `json:"jxFreightMoneyByShop"`      // 转自送-->美团/达达订单产生运费,由商家承担的部分-
	JxSubsidyMoney            int64                     `json:"jxSubsidyMoney"`            // 京西总补贴
	JxSkuSubsidyMoney         int64                     `json:"jxSkuSubsidyMoney"`         // 京西补贴给单条sku的金额
	JxShopMoney               int64                     `json:"jxShopMoney"`               // 店铺应结金额-京西结算给店铺的金额M
	DownFlag                  int8                      `json:"downFlag"`                  // 0--正常单， 1--降级单
	Skus                      []*OrderSkuFinancial      `orm:"-" json:"skus"`              // 正向订单购买商品列表
	Discounts                 []*OrderDiscountFinancial `orm:"-" json:"discounts"`         // 正向订单享受优惠列表
}

func (o *OrderFinancial) TableUnique() [][]string {
	return [][]string{
		[]string{"VendorOrderID", "VendorID"},
	}
}

type OrderDiscountFinancial struct {
	ModelIDCUL

	VendorID         int    `orm:"column(vendor_id)" json:"vendorID"`
	VendorOrderID    string `orm:"column(vendor_order_id);size(48)" json:"vendorOrderID"`         // 订单ID
	VendorOrderID2   string `orm:"column(vendor_order_id2);size(48);index" json:"vendorOrderID2"` // 订单ID2,饿百独有
	VendorActivityID string `orm:"column(vendor_activity_id);size(48)" json:"vendorActivityID"`   // 活动ID 活动ID的存在，使原本的通过城市/下单时间-活动时间/金额……一系列匹配来确认活动归属的费时且准确度低的行为有了改变的可能--通过编码精确定位
	Type             string `orm:"size(48)" json:"type"`                                          // 活动type 美团订单存在不同的活动，活动ID是一样的，type不一样 如订单34399553040365354
	// ActivityName     string `orm:"size(255)" json:"activityName"`                                 // 活动名
	// ActivityMoney    int64  `json:"activityMoney"`                                                // 优惠金额
	// Remark           string `orm:"size(255)" json:"remark"`                                       // 备注
}

// 设置主键 "VendorOrderID", "DiscountCode", "VendorID" 一个订单不可能享受同一优惠2次
func (o *OrderDiscountFinancial) TableUnique() [][]string {
	return [][]string{
		[]string{"VendorOrderID", "VendorActivityID", "Type", "VendorID"},
	}
}

type AfsOrder struct {
	ModelIDCUL

	VendorID       int       `orm:"column(vendor_id)" json:"vendorID"`
	VendorOrderID  string    `orm:"column(vendor_order_id);size(48)" json:"vendorOrderID"`         // 关联原始订单ID
	VendorOrderID2 string    `orm:"column(vendor_order_id2);size(48);index" json:"vendorOrderID2"` // 关联原始订单ID2,饿百独有
	AfsOrderID     string    `orm:"column(afs_order_id);size(48)" json:"afsOrderID"`               // 售后订单ID
	AfsCreatedAt   time.Time `orm:"type(datetime);null;index" json:"afsCreatedAt"`                 // 售后单生成时间
	AfsFinishedAt  time.Time `orm:"type(datetime);null;index" json:"afsFinishedAt"`                // 售后单结束时间
	VendorStoreID  string    `orm:"column(vendor_store_id);size(48)" json:"vendorStoreID"`         // 外部系统里记录的storeid
	StoreID        int       `orm:"column(store_id)" json:"storeID"`                               // 接口返回的京西门店ID
	JxStoreID      int       `orm:"column(jx_store_id)" json:"jxStoreID"`                          // 根据VendorStoreID在本地系统里查询出来的 jxstoreid

	// IsNeedApprove    int8   `json:"isNeedApprove"` // 售后单是否需要商家审核
	Status           int    `json:"status"`
	VendorStatus     string `orm:"size(255)" json:"vendorStatus"`
	ReasonType       int8   `json:"reasonType"`                       // 售后原因
	VendorReasonType string `orm:"size(255)" json:"vendorReasonType"` // 原始售后原因
	ReasonDesc       string `orm:"size(1024)" json:"reasonDesc"`      // 售后原因描述
	ReasonImgList    string `orm:"size(1024)" json:"reasonImgList"`   // 售后描述图片
	AppealType       int8   `json:"appealType"`                       // 售后方式(本地)
	VendorAppealType string `orm:"size(255)" json:"vendorAppealType"` // 原始售后方式(第三方平台)
	Flag             int    `json:"flag"`                             // 0 未操作/1同意/3驳回
	RefundType       int8   `json:"refundType"`
	RefuseReason     string `orm:"size(1024)" json:"refuseReason"`

	AfsTotalShopMoney     int64 `json:"afsTotalShopMoney"`     // 最新的退款后的平台结算
	SkuUserMoney          int64 `json:"skuUserMoney"`          // 用户支付菜品金额
	FreightUserMoney      int64 `json:"freightUserMoney"`      // 用户支付运费金额
	AfsFreightMoney       int64 `json:"afsFreightMoney"`       // 退货取件费
	BoxMoney              int64 `json:"boxMoney"`              // 应退包装费金额
	TongchengFreightMoney int64 `json:"tongchengFreightMoney"` // 退货单产生的同城送费用
	SkuBoxMoney           int64 `json:"skuBoxMoney"`           // 应退订单餐盒费
	PmSubsidyMoney        int64 `json:"pmSubsidyMoney"`        // 平台总补贴金额
	PmSkuSubsidyMoney     int64 `json:"pmSkuSubsidyMoney"`     // 平台sku补贴金额
	PmRefundMoney         int64 `json:"pmRefundMoney"`         // 订单取消后可能存在佣金减少，平台退回部分金额的情况
	RefundMoney           int64 `json:"refundMoney"`           // 平台扣款总额 1
	RefundMoneyByCal      int64 `json:"refundMoneyByCal"`      // 平台扣款总额-通过公式计算平台扣除京西的金额M
	// JxSkuMoney            int64     `json:"jxSkuMoney"`                                                    // 京西补贴金额,现阶段是平台扣京西多少钱，京西扣商家多少钱，暂不考虑撤回京西补贴
	Skus          []*OrderSkuFinancial `orm:"-" json:"skus"`
	VendorOrgCode string               `orm:"size(64)" json:"vendorOrgCode"` // 同一平台下不同的商户代码，如果只有一个，可以为空
}

func (o *AfsOrder) TableUnique() [][]string {
	return [][]string{
		[]string{"AfsOrderID", "VendorID"},
	}
}

type OrderSkuFinancial struct {
	ModelIDCUL

	VendorID         int    `orm:"column(vendor_id)" json:"vendorID"`                            // 平台id
	VendorOrderID    string `orm:"column(vendor_order_id);size(48)" json:"vendorOrderID"`        // 关联原始订单ID
	VendorSubOrderID string `orm:"column(vendor_sub_order_id);size(48)" json:"vendorSubOrderID"` // 关联原始订单ID
	AfsOrderID       string `orm:"column(afs_order_id);size(48)" json:"afsOrderID"`              // 售后单ID
	IsAfsOrder       int8   `json:"isAfsOrder"`                                                  // 0--正向单， 1--售后单

	// ConfirmTime          time.Time `orm:"type(datetime)" json:"confirmTime"`                     // 订单生成/完成时间
	VendorStoreID     string `orm:"column(vendor_store_id);size(48)" json:"vendorStoreID"` // 外部系统里记录的storeid
	StoreID           int    `orm:"column(store_id)" json:"storeID"`                       // 接口返回的京西门店ID
	JxStoreID         int    `orm:"column(jx_store_id)" json:"jxStoreID"`                  // 根据VendorStoreID在本地系统里查询出来的 jxstoreid
	VendorSkuID       string `orm:"column(vendor_sku_id);size(48)" json:"vendorSkuID"`     // 平台skuid
	SkuID             int    `orm:"column(sku_id)" json:"skuID"`                           // 平台返回的京西skuid
	JxSkuID           int    `orm:"column(jx_sku_id)" json:"jxSkuID"`                      // 京西skuid
	PromotionType     int    `json:"promotionType"`                                        // 商品级别促销类型 (1、无优惠;2、秒杀(已经下线);3、单品直降;4、限时抢购;1202、加价购;1203、满赠(标识商品);6、买赠(买A送B，标识B);9999、表示一个普通商品参与捆绑促销，设置的捆绑类型;9998、表示一个商品参与了捆绑促销，并且还参与了其他促销类型;9997、表示一个商品参与了捆绑促销，但是金额拆分不尽,9996:组合购,8001:轻松购会员价,8:第二件N折,9:拼团促销)
	Name              string `orm:"size(255)" json:"name"`                                 // 商品名
	ShopPrice         int64  `json:"shopPrice"`                                            // 门店标价
	SalePrice         int64  `json:"salePrice"`                                            // 售卖价
	Count             int    `json:"count"`                                                // 订单下单数量
	SkuBoxMoney       int64  `json:"skuBoxMoney"`                                          // sku餐盒费(美团/饿百的单条sku存在这个概念)
	UserMoney         int64  `json:"userMoney"`                                            // 用户支付金额
	PmSubsidyMoney    int64  `json:"pmSubsidyMoney"`                                       // 平台补贴总金额
	PmSkuSubsidyMoney int64  `json:"pmSkuSubsidyMoney"`                                    // 平台补贴sku金额
	PmDeductionsMoney int64  `json:"pmDeductionsMoney"`                                    // 单条sku需要承担的平台扣费金额
	ShopMoney         int64  `json:"shopMoney"`                                            // 应结金额-第三方平台结算给京西的金额M
	ShopMoneyByCal    int64  `json:"shopMoneyByCal"`                                       // 应结金额-通过公式计算平台结给京西的金额M

	JxSubsidyMoney    int64 `json:"jxSubsidyMoney"`    // 京西总补贴
	JxSkuSubsidyMoney int64 `json:"jxSkuSubsidyMoney"` // 京西补贴，针对单品活动补贴
	JxDeductionsMoney int64 `json:"jxDeductionsMoney"` // 单条sku需要承担的京西扣费金额
	JxShopMoney       int64 `json:"jxShopMoney"`       // 店铺应结金额-京西结算给店铺的金额M
	RefundMoney       int64 `json:"refundMoney"`       // 平台扣款总额 暂时无用
	RefundMoneyByCal  int64 `json:"refundMoneyByCal"`  // 平台扣款总额-通过公式计算平台扣除京西的金额M
	// CreatedAt           time.Time `orm:"type(datetime);index" json:"createdAt"`                  // 订单创建时间
	// JxSkuMoney int64 `json:"jxSkuMoney"` // 京西补贴金额,现阶段是平台扣京西多少钱，京西扣商家多少钱，暂不考虑撤回京西补贴
	// SkuType             int       `json:"-"`                                                            // 当前如果为gift就为1，否则缺省为0
	StoreSubID   int    `orm:"column(store_sub_id)" json:"storeSubID"` // 当前这个字段被当成活动ID用
	StoreSubName string `orm:"size(64)" json:"storeSubName"`           // 当前这个字段被用作vendorActType
}

// todo
// func (o *OrderSkuFinancial) TableUnique() [][]string {
// 	return [][]string{
// 		[]string{"AfsOrderID", "VendorSkuID", "VendorID", "IsAfsOrder"},
// 	}
// }

func (o *OrderSkuFinancial) TableIndex() [][]string {
	return [][]string{
		[]string{"VendorOrderID", "VendorSkuID"},
		[]string{"AfsOrderID", "VendorSkuID"},
		[]string{"AfsOrderID", "JxSkuID"},
	}
}

// type ActivityForSku struct {
// 	ModelIDCUL

// 	CityName          string    `json:"cityName"`                                     // 活动所在城市
// 	VendorID          int       `orm:"column(vendor_id)" json:"vendorID"`             // 平台id
// 	ActivityCreatedAt time.Time `orm:"type(datetime);index" json:"activityCreatedAt"` // 活动开始时间时间
// 	ActivityEndAt     time.Time `orm:"type(datetime);index" json:"activityEndAt"`     // 活动结束时间
// 	VendorSkuID       string    `orm:"column(vendor_sku_id)" json:"vendorSkuID"`      // 平台skuid
// 	SkuID             int       `orm:"column(sku_id)" json:"skuID"`                   // 平台返回的京西skuid
// 	JxSkuID           int       `orm:"column(jx_sku_id)" json:"jxSkuID"`              // 京西本地系统查询到的skuid
// 	ActivityPrice     int64     `json:"activityPrice"`                                // 活动价格
// 	JxSubsidy         int64     `json:"jxSubsidy"`                                    // 京西补贴
// 	ManagerSubsidy    int64     `json:"managerSubsidy"`                               // 城市经理补贴
// 	Remark            string    `json:"remark"`                                       // 备注
// }
