package domain

import (
	"topsdk/util"
)

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

	/*
	   供应商来源网站。 入驻时定义供应商来源的外部系统编码, values: taobao, alibaba     */
	SupplierFrom *string `json:"supplier_from,omitempty" `

	/*
	   供应商昵称（在来源网站的帐号名）     */
	SupplierUsername *string `json:"supplier_username,omitempty" `

	/*
	   建议废弃： 分销商来源网站。 入驻时定义分销商来源的外部系统编码, 目前固定值: taobao     */
	DistributorFrom *string `json:"distributor_from,omitempty" `

	/*
	   分销商昵称（在来源网站的帐号名）。     */
	DistributorUsername *string `json:"distributor_username,omitempty" `

	/*
	   加密后的消费者淘宝ID，长度为32     */
	BuyerTaobaoId *string `json:"buyer_taobao_id,omitempty" `

	/*
	   消费者（买家）nick，供应商查询不会返回买家昵称，分销商查询才会返回。     */
	BuyerNick *string `json:"buyer_nick,omitempty" `

	/*
	   交易模式（分销方式）：AGENT（代销）、DEALER（经销）、INSTEAD_SALE（代售）、CONSIGNMENT（自营寄售）、PLATFORM_CONSIGNMENT（平台寄售）     */
	TradeType *string `json:"trade_type,omitempty" `

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

	/*
	   废弃：如果是担保交易此值是TP800的交易单号，其他情况是采购单单号     */
	Id *int64 `json:"id,omitempty" `

	/*
	   分销采购单号（分销流水号）     */
	FenxiaoId *int64 `json:"fenxiao_id,omitempty" `

	/*
	   采购单留言，默认是分销商留言。在代销模式下信息包括消费者（买家）留言和分销商留言信息     */
	Memo *string `json:"memo,omitempty" `

	/*
	   供应商备注信息。 只有供应商身份查询输出此新信息     */
	SupplierMemo *string `json:"supplier_memo,omitempty" `

	/*
	   供应商备注旗帜vlaue在1-5之间。 非1-5之间，都采用1作为默认。 1:红色 2:黄色 3:绿色 4:蓝色 5:粉红色 供应商角色查询返回     */
	SupplierFlag *int64 `json:"supplier_flag,omitempty" `

	/*
	   支付宝交易号，在分销商使用担保交易支付时存在。 来源主订单的payOrderId。     */
	AlipayNo *string `json:"alipay_no,omitempty" `

	/*
	   应付采购单总额（不含邮费,精确到2位小数;单位:元。如:200.07，表示:200元7分 ) 计算公式： SUM(子单采购价 * 子单采购数量 - 子单折扣）+ 主单调整金额 - 主单折扣     */
	TotalFee *string `json:"total_fee,omitempty" `

	/*
	   采购单邮费。(改价后最新邮费，精确到2位小数;单位:元。如:8.07，表示:8元7分 )     */
	PostFee *string `json:"post_fee,omitempty" `

	/*
	   分销商实付金额。(精确到2位小数;单位:元。如:208.14，表示:208元1角4分 )     */
	DistributorPayment *string `json:"distributor_payment,omitempty" `

	/*
	   消费者（买家）支付给分销商的主单的实际总金额。 注意买家购买的商品可能不是全部来自同一供货商，所以此金额不代表供应商销售商品消费者的实付款。请同时参考子单上的相关金额。（精确到2位小数;单位:元。如:200.07，表示:200元7分）     */
	BuyerPayment *string `json:"buyer_payment,omitempty" `

	/*
	   交易订单快照URL（该字段废弃）     */
	SnapshotUrl *string `json:"snapshot_url,omitempty" `

	/*
	   采购单交易状态，耦合了退款状态，废弃。  可选值：  	WAIT_BUYER_PAY(等待付款)  	WAIT_SELLER_SEND_GOODS(已付款，待发货） 	WAIT_BUYER_CONFIRM_GOODS(已付款，已发货) 	PAID_FORBID_CONSIGN(已付款，禁止发货 ps:架海金梁erpHold单场景) 	TRADE_FINISHED(交易成功) 	TRADE_CLOSED(交易关闭) 	WAIT_BUYER_CONFIRM_GOODS_ACOUNTED(已付款（已分账），已发货。只对代销分账支持) PAY_ACOUNTED_GOODS_CONFIRM （已分账发货成功） PAY_WAIT_ACOUNT_GOODS_CONFIRM（已付款，确认收货） 	TRADE_REFUNDING(退款中) 	TRADE_REFUNDED(退款结束)     */
	Status *string `json:"status,omitempty" `

	/*
	   采购单付款时间。格式:yyyy-MM-dd HH:mm:ss     */
	PayTime *util.LocalTime `json:"pay_time,omitempty" `

	/*
	   交易结束时间。 如果交易成功此时间表示交易成功时间，如果交易关闭，此时间表示交易关闭时间。     */
	EndTime *util.LocalTime `json:"end_time,omitempty" `

	/*
	   采购单物流发货时间。格式:yyyy-MM-dd HH:mm:ss     */
	ConsignTime *util.LocalTime `json:"consign_time,omitempty" `

	/*
	   采购单最后修改时间（包括订单状态变更和订单操作）。格式:yyyy-MM-dd HH:mm:ss     */
	Modified *util.LocalTime `json:"modified,omitempty" `

	/*
	   ISV自定义key，通过taobao.fenxiao.order.customfield.update 写入。目前禁用     */
	IsvCustomKey *[]string `json:"isv_custom_key,omitempty" `

	/*
	   ISV自定义值，通过taobao.fenxiao.order.customfield.update 写入。目前禁用     */
	IsvCustomValue *[]string `json:"isv_custom_value,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" `

	/*
	   支付方式：ALIPAY_SURETY（支付宝担保交易）、ALIPAY_CHAIN（分账交易）、TRANSFER（线下转账）、PREPAY（预存款）、IMMEDIATELY（即时到账）、CASHGOODS（先款后货）、ACCOUNT_PERIOD（账期支付）     */
	PayType *string `json:"pay_type,omitempty" `

	/*
	   物流配送方式，发货后有此数据。 对应的值：FAST(快速)、EMS、ORDINARY(平邮)、SELLER(卖家包邮)     */
	Shipping *string `json:"shipping,omitempty" `

	/*
	   物流公司名称     */
	LogisticsCompanyName *string `json:"logistics_company_name,omitempty" `

	/*
	   运单号     */
	LogisticsId *string `json:"logistics_id,omitempty" `

	/*
	   子订单的详细信息列表     */
	SubPurchaseOrders *[]TaobaoFenxiaoOrdersGetSubOrderDetail `json:"sub_purchase_orders,omitempty" `

	/*
	   买家详细信息     */
	Receiver *TaobaoFenxiaoOrdersGetTopReceiverDo `json:"receiver,omitempty" `

	/*
	   采购单留言列表，如果是代销，包含消费者留言。     */
	OrderMessages *[]TaobaoFenxiaoOrdersGetOrderMessages `json:"order_messages,omitempty" `

	/*
	   [架海金梁独有字段，非架海金梁用户请勿关心]子单物流发货信息     */
	LogisticsInfos *[]TaobaoFenxiaoOrdersGetErpLogisticsInfo `json:"logistics_infos,omitempty" `

	/*
	   支付宝交易号，担保交易使用。     */
	AlipayOrderNo *string `json:"alipay_order_no,omitempty" `

	/*
	   已执行确认收货的金额，单位：元     */
	ConfirmPaidFeeYuan *string `json:"confirm_paid_fee_yuan,omitempty" `

	/*
	   渠道(市场)编码，例如消费电子的编码为200002     */
	ChannelCode *int64 `json:"channel_code,omitempty" `

	/*
	   消费者淘宝id被加密后的唯一标识     */
	OpenBuyerUid *string `json:"open_buyer_uid,omitempty" `

	/*
	   计划出库时间     */
	DeliveryTime *string `json:"delivery_time,omitempty" `

	/*
	   计划送达时间     */
	SignTime *string `json:"sign_time,omitempty" `

	/*
	   配送服务,201为驿站送货上门服务,202为顺丰配送服务,里面多个值时用英文逗号隔开     */
	AsdpAds *string `json:"asdp_ads,omitempty" `

	/*
	   推荐配送公司编码     */
	DeliveryCps *string `json:"delivery_cps,omitempty" `

	/*
	   真正的采购单交易状态。  可选值：  LOCKED(交易hold单中) WAIT_BUYER_PAY(等待付款)  	WAIT_SELLER_CONFIRM_PAY(付款信息待确认，待发货) 	WAIT_SELLER_SEND_GOODS(已付款，待发货） 	WAIT_BUYER_CONFIRM_GOODS(已付款，已发货) 	TRADE_FINISHED(交易成功) 	TRADE_CLOSED(交易关闭)      */
	OrderStatus *string `json:"order_status,omitempty" `

	/*
	   采购单售中退款状态。  可选值：  ORDER_RF_NO_REFUND(整单无退款) ORDER_RF_REFUNDING(退款中) ORDER_RF_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" `
}

func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetTcOrderId(v int64) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.TcOrderId = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetSupplierFrom(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.SupplierFrom = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetSupplierUsername(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.SupplierUsername = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetDistributorFrom(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.DistributorFrom = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetDistributorUsername(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.DistributorUsername = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetBuyerTaobaoId(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.BuyerTaobaoId = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetBuyerNick(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.BuyerNick = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetTradeType(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.TradeType = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetCreated(v util.LocalTime) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.Created = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetId(v int64) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.Id = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetFenxiaoId(v int64) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.FenxiaoId = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetMemo(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.Memo = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetSupplierMemo(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.SupplierMemo = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetSupplierFlag(v int64) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.SupplierFlag = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetAlipayNo(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.AlipayNo = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetTotalFee(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.TotalFee = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetPostFee(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.PostFee = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetDistributorPayment(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.DistributorPayment = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetBuyerPayment(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.BuyerPayment = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetSnapshotUrl(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.SnapshotUrl = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetStatus(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.Status = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetPayTime(v util.LocalTime) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.PayTime = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetEndTime(v util.LocalTime) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.EndTime = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetConsignTime(v util.LocalTime) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.ConsignTime = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetModified(v util.LocalTime) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.Modified = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetIsvCustomKey(v []string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.IsvCustomKey = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetIsvCustomValue(v []string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.IsvCustomValue = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetFeatures(v []TaobaoFenxiaoOrdersGetFeatureDo) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.Features = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetPayType(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.PayType = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetShipping(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.Shipping = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetLogisticsCompanyName(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.LogisticsCompanyName = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetLogisticsId(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.LogisticsId = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetSubPurchaseOrders(v []TaobaoFenxiaoOrdersGetSubOrderDetail) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.SubPurchaseOrders = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetReceiver(v TaobaoFenxiaoOrdersGetTopReceiverDo) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.Receiver = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetOrderMessages(v []TaobaoFenxiaoOrdersGetOrderMessages) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.OrderMessages = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetLogisticsInfos(v []TaobaoFenxiaoOrdersGetErpLogisticsInfo) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.LogisticsInfos = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetAlipayOrderNo(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.AlipayOrderNo = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetConfirmPaidFeeYuan(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.ConfirmPaidFeeYuan = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetChannelCode(v int64) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.ChannelCode = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetOpenBuyerUid(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.OpenBuyerUid = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetDeliveryTime(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.DeliveryTime = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetSignTime(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.SignTime = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetAsdpAds(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.AsdpAds = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetDeliveryCps(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.DeliveryCps = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetOrderStatus(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.OrderStatus = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetRefundStatus(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.RefundStatus = &v
	return s
}
func (s *TaobaoFenxiaoOrdersGetTopDpOrderDo) SetSuitStatus(v string) *TaobaoFenxiaoOrdersGetTopDpOrderDo {
	s.SuitStatus = &v
	return s
}
