package domain

import (
	"topsdk/util"
)

type TaobaoFenxiaoOrdersGetSubOrderDetail struct {
	/*
	   消费者订单子订单ID（经销模式下不存在该值）     */
	TcOrderId *int64 `json:"tc_order_id,omitempty" `

	/*
	   子采购单编号     */
	FenxiaoId *int64 `json:"fenxiao_id,omitempty" `

	/*
	   分销平台上的产品id     */
	ItemId *int64 `json:"item_id,omitempty" `

	/*
	   商品商家编码，供应商发布产品是定义的产品编码     */
	ItemOuterId *string `json:"item_outer_id,omitempty" `

	/*
	   分销产品的SKU ID。 当存在时才会有值，建议使用sku_outer_id，sku_properties这两个值     */
	SkuId *int64 `json:"sku_id,omitempty" `

	/*
	   消费者购买宝贝ID，不存在时为0。 2015年4月15日之前创建的采购单该字段都是0。     */
	AuctionId *int64 `json:"auction_id,omitempty" `

	/*
	   消费者购买宝贝SKU ID，不存在时为0。 2015年3月15日之前创建的采购单该字段都是0。     */
	AuctionSkuId *int64 `json:"auction_sku_id,omitempty" `

	/*
	   SKU商家编码，供应商发布产品SKU是定义的编码     */
	SkuOuterId *string `json:"sku_outer_id,omitempty" `

	/*
	   SKU属性值。如: 颜色:红色:别名;尺码:L:别名     */
	SkuProperties *string `json:"sku_properties,omitempty" `

	/*
	   老的SKU属性值。如: 颜色:红色:别名;尺码:L:别名     */
	OldSkuProperties *string `json:"old_sku_properties,omitempty" `

	/*
	   产品的采购数量。取值范围:大于零的整数     */
	Num *int64 `json:"num,omitempty" `

	/*
	   采购的产品标题。     */
	Title *string `json:"title,omitempty" `

	/*
	   产品的采购价格。（精确到2位小数;单位:元。如:200.07，表示:200元7分）     */
	Price *string `json:"price,omitempty" `

	/*
	   废弃： 产品快照地址     */
	SnapshotUrl *string `json:"snapshot_url,omitempty" `

	/*
	   子单创建时间。格式 yyyy-MM-dd HH:mm:ss 。     */
	Created *util.LocalTime `json:"created,omitempty" `

	/*
	   采购单交易状态，耦合了退款状态，废弃。  可选值：  	WAIT_BUYER_PAY(等待付款)  	WAIT_SELLER_CONFIRM(付款信息待确认，待发货) 	WAIT_SELLER_SEND_GOODS(已付款，待发货） 	WAIT_BUYER_CONFIRM_GOODS(已付款，已发货) 	TRADE_FINISHED(交易成功) 	TRADE_CLOSED(交易关闭) 	TRADE_REFUNDING(退款中) 	TRADE_REFUNDED(已退款) 	PAID_FORBID_CONSIGN(已付款, 禁止发货(大快消行业)) WAIT_BUYER_CONFIRM_GOODS_ACOUNTED(已付款（已分账），已发货。只对代销分账支持) PAY_ACOUNTED_GOODS_CONFIRM （已分账发货成功） PAY_WAIT_ACOUNT_GOODS_CONFIRM（已付款，确认收货）     */
	Status *string `json:"status,omitempty" `

	/*
	   建议废弃：只有当担保交易支付时存在，为TP800的订单编号 子采购单id，淘宝交易主键，采购单未付款时为0.（只有支付宝 付款才有这个id，其余付款形式该字段为0）     */
	Id *int64 `json:"id,omitempty" `

	/*
	   分销商应付金额。 计算公式：num(采购数量)*price(采购价) - 折扣。（精确到2位小数;单位:元。如:200.07，表示:200元7分）     */
	TotalFee *string `json:"total_fee,omitempty" `

	/*
	   分销商实付金额。 total_fee（分销商应付金额）+ 改价。（精确到2位小数;单位:元。如:200.07，表示:200元7分）     */
	DistributorPayment *string `json:"distributor_payment,omitempty" `

	/*
	   买家订单上对应的子单零售金额。 计算公式：消费者订单的成交价 * 购买数量 + 调整金额 - 优惠折扣（精确到2位小数;单位:元。如:200.07，表示:200元7分）     */
	BuyerPayment *string `json:"buyer_payment,omitempty" `

	/*
	   退款金额，单位元。（精确到2位小数;单位:元。如:12.23，表示:12元2角3分）     */
	RefundFee *string `json:"refund_fee,omitempty" `

	/*
	   消费者的交易订单状态（代销采购单对应下游200订单状态）。 可选值： WAIT_SELLER_SEND_GOODS(已付款，待发货) WAIT_BUYER_CONFIRM_GOODS(已付款，已发货) TRADE_CLOSED(已退款成功) TRADE_REFUNDING(退款中) TRADE_FINISHED(交易成功) TRADE_CLOSED_BY_TAOBAO(交易关闭)     */
	Order200Status *string `json:"order_200_status,omitempty" `

	/*
	   分销商店铺中宝贝一口价，消费者看见的宝贝价格。单位元 代销场景下存在，此价格不是实付款的价格。     */
	AuctionPrice *string `json:"auction_price,omitempty" `

	/*
	   发票应开金额。 子单的消费者实付分摊金额。根据买家实际付款去除邮费后，按各个子单(商品)金额比例进行分摊后的金额，仅供开发票时做票面金额参考。     */
	BillFee *string `json:"bill_fee,omitempty" `

	/*
	   后端商品id     */
	ScItemId *int64 `json:"sc_item_id,omitempty" `

	/*
	   商品优惠类型：聚划算、秒杀或其他     */
	TcPreferentialType *string `json:"tc_preferential_type,omitempty" `

	/*
	   优惠金额，始终为正数，单位是分，不带小数     */
	TcDiscountFee *int64 `json:"tc_discount_fee,omitempty" `

	/*
	   商品的卖出金额调整，金额增加时为正数，金额减少时为负数，单位是分，不带小数     */
	TcAdjustFee *int64 `json:"tc_adjust_fee,omitempty" `

	/*
	   消费者订单优惠金额，始终为正数，单位是分，不带小数     */
	DiscountFee *string `json:"discount_fee,omitempty" `

	/*
	   采购子订单优惠活动类型。0=无优惠；1=限时折     */
	PromotionType *string `json:"promotion_type,omitempty" `

	/*
	   建议废弃 Feature对象列表目前已有的属性： attr_key为 www，attr_value为1 表示是www子订单； attr_key为 wwwStoreCode，attr_value是www子订单发货的仓库编码； attr_key为 isWt，attr_value为1 表示是网厅子订单； attr_key为wtInfo,attr_value为网厅相关合约信息；  attr_key为 storeCode，attr_value为仓库信息；  attr_key为 erpHold，attr_value为1表示强管控中， attr_value为2表示分单完成；     */
	Features *[]TaobaoFenxiaoOrdersGetFeatureDo `json:"features,omitempty" `

	/*
	   子订单留言信息     */
	TopMemo *TaobaoFenxiaoOrdersGetTopMemoDto `json:"top_memo,omitempty" `

	/*
	   真正的采购单交易状态。  可选值：  LOCKED(交易hold单中) WAIT_FOR_PAY(等待付款)  	PAID_WAIT_FOR_CONFIRM(付款信息待确认，待发货) 	PAID(已付款待发货）CONSIGNED(已发货待确认收货) 	ORDER_SUCCESS(交易成功) 	ORDER_CLOSE(交易关闭)      */
	OrderStatus *string `json:"order_status,omitempty" `

	/*
	   采购单售中退款状态。  可选值：  RF_STATUS_NO_REFUND(子单无退款) RF_STATUS_REFUNDING(子单退款中)  	RF_STATUS_END_REFUND(子单退款结束)     */
	RefundStatus *string `json:"refund_status,omitempty" `

	/*
	   采购单售后维权状态。可选值：ORDER_RF_NO_SUIT(未申请维权) ORDER_RF_SUITING(维权中) ORDER_RF_END_SUIT(维权结束)     */
	SuitStatus *string `json:"suit_status,omitempty" `

	/*
	   百补订单要求发货必须带SN回传     */
	NeedSn *bool `json:"need_sn,omitempty" `

	/*
	   有此字段代表百补订单要求必须预上传SN     */
	BybtSnCodeTag *string `json:"bybt_sn_code_tag,omitempty" `
}

func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetTcOrderId(v int64) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.TcOrderId = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetFenxiaoId(v int64) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.FenxiaoId = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetItemId(v int64) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.ItemId = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetItemOuterId(v string) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.ItemOuterId = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetSkuId(v int64) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.SkuId = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetAuctionId(v int64) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.AuctionId = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetAuctionSkuId(v int64) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.AuctionSkuId = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetSkuOuterId(v string) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.SkuOuterId = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetSkuProperties(v string) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.SkuProperties = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetOldSkuProperties(v string) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.OldSkuProperties = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetNum(v int64) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.Num = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetTitle(v string) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.Title = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetPrice(v string) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.Price = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetSnapshotUrl(v string) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.SnapshotUrl = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetCreated(v util.LocalTime) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.Created = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetStatus(v string) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.Status = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetId(v int64) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.Id = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetTotalFee(v string) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.TotalFee = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetDistributorPayment(v string) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.DistributorPayment = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetBuyerPayment(v string) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.BuyerPayment = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetRefundFee(v string) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.RefundFee = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetOrder200Status(v string) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.Order200Status = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetAuctionPrice(v string) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.AuctionPrice = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetBillFee(v string) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.BillFee = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetScItemId(v int64) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.ScItemId = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetTcPreferentialType(v string) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.TcPreferentialType = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetTcDiscountFee(v int64) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.TcDiscountFee = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetTcAdjustFee(v int64) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.TcAdjustFee = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetDiscountFee(v string) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.DiscountFee = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetPromotionType(v string) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.PromotionType = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetFeatures(v []TaobaoFenxiaoOrdersGetFeatureDo) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.Features = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetTopMemo(v TaobaoFenxiaoOrdersGetTopMemoDto) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.TopMemo = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetOrderStatus(v string) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.OrderStatus = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetRefundStatus(v string) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.RefundStatus = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetSuitStatus(v string) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.SuitStatus = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetNeedSn(v bool) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.NeedSn = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetSubOrderDetail) SetBybtSnCodeTag(v string) *TaobaoFenxiaoOrdersGetSubOrderDetail {
	s.BybtSnCodeTag = &v
	return s
}
