package domain

import "time"

const (
	OrderStatusReserve     = iota + 1 //预定中
	OrderStatusDeliverSome            //部分发货
	OrderStatusDeliverAll             //全部发货
)

const (
	OrderReal      = iota + 1 //实发订单
	OrderIntention            //意向订单
)

//买家
type Buyer struct {
	//买家姓名
	BuyerName string `json:"buyerName"`
	//联系方式
	ContactInfo string `json:"contactInfo"`
	//收获地址
	ShippingAddress string `json:"shippingAddress"`
}

type Order struct {
	Id int64 `json:"id"`
	//订单类型
	OrderType int `json:"orderType"`
	//订单编号
	OrderCode string `json:"orderCode"`
	//订单名称
	OrderName string `json:"oderName"`
	//订单状态
	OrderStatus int `json:"orderStatus"`
	//数量
	OrderCount int `json:"orderCount"`
	//实际数量
	OrderActualCount int `json:"orderActualCount"`
	//订单金额
	OrderAmount int `json:"orderAmount"`
	//实际订单金额
	OrderActualAmount int `json:"orderActualAmount"`
	//订单已支付分红金额(货款)
	OrderPaymentAmount int `json:"orderPaymentAmount"`
	//订单区域信息
	OrderRegionInfo *RegionInfo `json:"orderRegionInfo"`
	//买家
	Buyer *Buyer `json:"buyer"`
	//合伙人id
	PartnerId int64 `json:"PartnerId"`
	//合伙人数据
	PartnerInfo *PartnerInfo `json:"partnerInfo"`
	//合伙人分红百分比
	PartnerBonusPercent float64 `json:"partnerBonusPercent"`
	//业务员分红百分比
	SalesmanBonusPercent float64 `json:"salesmanBonusPercent"`
	//最后查看得时间
	LastViewTime time.Time `json:"lastViewTime"`
}

// type PartnerFindOneQuery struct {
// 	UserId       int64
// 	AccountEqual string
// }

type OrderRepository interface {
	Save(*Order) error
	//FindOne(qureyOptions AdminUserFindOneQuery) (*AdminUser, error)
	// Find(queryOptions AdminUserFindQuery) ([]AdminUser, error)
	// CountAll(queryOption AdminUserFindQuery) (int, error)
}