package q_bida

// PublicParams 公共参数
type PublicParams struct {
	Code int64  `json:"code"`
	Msg  string `json:"msg"`
}

// LoginParamsRes 登录返回参数
type LoginParamsRes struct {
	PublicParams
	Data *struct {
		Genre    int64       `json:"genre"`     // genre
		Token    string      `json:"token"`     // token
		IsVerify interface{} `json:"is_verify"` // isVerify
	} `json:"data"`
}

//#region 获取快递费

// GetExpressPriceReq 获取快递费请求参数
type GetExpressPriceReq struct {
	Type            int     `json:"type"`            // 快递公司
	PromiseTimeType int     `json:"promiseTimeType"` // 快递时效产品
	DeliveryType    int     `json:"deliveryType"`    // 产品类型
	GoodsValue      float64 `json:"goodsValue"`      // 保价金额
	ReceiveAddress  string  `json:"receiveAddress"`  // 收件人地址
	SendAddress     string  `json:"sendAddress"`     // 寄件人地址
	Weight          int     `json:"weight"`          // 重量kg
	Length          int     `json:"length"`          // 所有包裹累计长cm
	Height          int     `json:"height"`          // 所有包裹累计高cm
	Width           int     `json:"width"`           // 所有包裹累计宽cm（向上取整）
	SendPhone       string  `json:"sendPhone"`       // 寄件人手机号
	ChannelType     int     `json:"channelType"`     // "渠道类型（1-快递，2-物流，3-国际物流，4-整车）"
}

// GetExpressPriceRes 获取快递费返回值
type GetExpressPriceRes struct {
	PublicParams
	Data *GetExpressPriceData `json:"data"`
}

// GetExpressPriceData 获取正儿八经返回值
type GetExpressPriceData struct {
	BillWeight    int         `json:"billWeight"`
	Bulk          int         `json:"bulk"`       // 体积抛比系数
	ChannelFee    float64     `json:"channelFee"` // 渠道价
	ChannelName   string      `json:"channelName"`
	Discount      float64     `json:"discount"`
	Genre         int         `json:"genre"`
	GuarantFee    float64     `json:"guarantFee"` // 保价费用
	IncrementFee  float64     `json:"incrementFee"`
	InsuredMsg    string      `json:"insuredMsg"`
	IsInsured     bool        `json:"isInsured"`
	LimitWeight   int         `json:"limitWeight"`
	OriginalFee   interface{} `json:"originalFee"`   // 原价
	PriceA        float64     `json:"priceA"`        // 价格a
	PriceB        float64     `json:"priceB"`        // 价格b
	Remark        string      `json:"remark"`        // 备注
	ServiceCharge float64     `json:"serviceCharge"` // 服务费
	Type          int         `json:"type"`          // 快递公司type
	TypeName      string      `json:"typeName"`      // 快递公司名称
	Volume        int         `json:"volume"`
	VolumeWeight  int         `json:"volumeWeight"`
}

//#endregion

//#region 下单

// MakeOrderReq 下订单请求参数
type MakeOrderReq struct {
	PromiseTimeType      int     `json:"promiseTimeType"`      // 快递时效产品
	DeliveryType         int     `json:"deliveryType"`         // 产品类型
	Goods                string  `json:"goods"`                // 商品名称
	GuaranteeValueAmount float64 `json:"guaranteeValueAmount"` // 保价金额
	Weight               int     `json:"weight"`               // 重量kg
	Length               int     `json:"length"`               // 所有包裹累计长cm
	Height               int     `json:"height"`               // 所有包裹累计高cm
	Width                int     `json:"width"`                // 所有包裹累计宽cm（向上取整）
	OrderSendTime        string  `json:"orderSendTime"`        // 预约时间
	PackageNum           int     `json:"packageNum"`           // 包裹数量
	ReceiveAddress       string  `json:"receiveAddress"`       // 收件人地址
	ReceiveName          string  `json:"receiveName"`          // 收件人姓名
	ReceivePhone         string  `json:"receivePhone"`         // 收件人手机号
	Remark               string  `json:"remark"`               // 运单备注
	SenderAddress        string  `json:"senderAddress"`        // 寄件人地址
	SenderName           string  `json:"senderName"`           // 寄件人姓名
	SenderPhone          string  `json:"senderPhone"`          // 寄件人手机号
	ThirdPlatform        int     `json:"thirdPlatform"`        // 第三方平台-京东商家下单传3
	Type                 int     `json:"type"`                 // 快递公司
	Img                  string  `json:"img"`                  // 包裹图片
}

// MakeOrderRes 下订单返回参数
type MakeOrderRes struct {
	Code      int         `json:"code"`
	ID        int         `json:"id"`
	Kuaidi    int         `json:"kuaidi"`
	Msg       string      `json:"msg"`
	OrderNo   string      `json:"orderNo"`
	TypeName  string      `json:"typeName"`
	WaybillNo interface{} `json:"waybillNo"`
}

//#endregion

//#region 取消订单

// CancelOrderReq 取消订单参数
type CancelOrderReq struct {
	Genre   int    `json:"genre"`   // 1-取消,2-关闭
	OrderNo string `json:"orderNo"` // 订单编号
	Type    int    `json:"type"`    // 快递公司
}

//#endregion

//#region 订单详情

// GetOrderDetailReq 获取订单详情
type GetOrderDetailReq struct {
	Type    int    `json:"type"`    // 快递公司
	OrderNo string `json:"orderNo"` // 订单号
}

// GetOrderDetailRes 订单详情返回值
type GetOrderDetailRes struct {
	PublicParams
	Data *OrderDetail `json:"data"`
}

type OrderDetail struct {
	ServiceCharge  int         `json:"serviceCharge"`
	IncrementFee   int         `json:"incrementFee"`
	Images         string      `json:"images"`
	ProductName    string      `json:"productName"`
	ProductCode    interface{} `json:"productCode"`
	OrderCode      string      `json:"orderCode"`
	ShipMethod     interface{} `json:"shipMethod"`
	ShipMethodName string      `json:"shipMethodName"`

	ChangeFee            float64            `json:"changeFee"`            // 转寄费用
	ConsumeFee           float64            `json:"consumeFee"`           // 耗材费元
	CopyText             string             `json:"copyText"`             // 复制信息
	CreateDate           string             `json:"createDate"`           // 下单时间
	ExpressFee           string             `json:"expressFee"`           // 快递费元 (元)
	FeeStatus            int                `json:"feeStatus"`            // 费用状态0下单费用冻结中 ,非0下单费用已扣
	Goods                string             `json:"goods"`                // 物品
	GuaranteeValueAmount float64            `json:"guaranteeValueAmount"` // 保价金额
	InsuranceFee         float64            `json:"insuranceFee"`         // 保价费元
	IsForward            bool               `json:"isForward"`            // 是否转寄单0否1是(转寄单额外收取50%运费)
	IsLimit              bool               `json:"isLimit"`              // 是否超限0否1是
	OriginalFee          float64            `json:"originalFee"`          // 官方原价
	OtherFee             float64            `json:"otherFee"`             // 其他费用
	OverWeightStatus     int                `json:"overWeightStatus"`     // 超重状态
	PackageNum           int                `json:"packageNum"`           // 包裹数
	ReceiveAddress       string             `json:"receiveAddress"`       // 收件人地址
	ReceiveCity          string             `json:"receiveCity"`          // 收件人地址城市
	ReceiveName          string             `json:"receiveName"`          // 收件人名称
	ReceivePhone         string             `json:"receivePhone"`         // 收件人电话
	SenderAddress        string             `json:"senderAddress"`        // 寄件人地址
	SenderCity           string             `json:"senderCity"`           // 寄件人地址城市
	SenderName           string             `json:"senderName"`           // 寄件人姓名
	SenderPhone          string             `json:"senderPhone"`          // 寄件人电话
	Soliciter            string             `json:"soliciter"`            // 揽件员
	Status               int                `json:"status"`               // 状态0预下单1待取件2运输中5已签收6取消订单7终止揽收
	StatusName           string             `json:"statusName"`           // 状态名称
	TotalFee             string             `json:"totalFee"`             // 总费用元
	PayFee               float64            `json:"payFee"`               // 实际支付费用元
	TraceList            []*TraceListDetail `json:"traceList"`            // 快递详情列表
	TrackingNum          string             `json:"trackingNum"`          // 运单号
	Type                 int                `json:"type"`                 // 快递公司 0：京东 1：德邦
	Volume               int                `json:"volume"`               // 体积cm3
	VolumeRemark         string             `json:"volumeRemark"`         // 体积重量计算说明
	VolumeWeight         float64            `json:"volumeWeight"`         // 体积重量Kg
	Weight               int                `json:"weight"`               // 下单重量Kg
	WeightActual         float64            `json:"weightActual"`         // 实际重量Kg
	WeightBill           int                `json:"weightBill"`           // 计费重量Kg
	WeightStatus         string             `json:"weightStatus"`         // 超重状态
	Yuanjia              float64            `json:"yuanJia"`              // 快递费
}

type TraceListDetail struct {
	ID          int         `json:"id"`
	CreateDate  string      `json:"createDate"`
	UpdateDate  interface{} `json:"updateDate"`
	Version     int         `json:"version"`
	Courier     string      `json:"courier"`     // 快递员
	CourierTel  string      `json:"courierTel"`  // 快递员电话
	OpeName     interface{} `json:"opeName"`     // 操作人
	OpeRemark   string      `json:"opeRemark"`   // 操作详情
	OpeTime     string      `json:"opeTime"`     // 操作时间
	OpeTimeAll  string      `json:"opeTimeAll"`  //
	OpeTitle    string      `json:"opeTitle"`    //
	WaybillCode string      `json:"waybillCode"` // 运单号
}

//#endregion
