package cn.superdesk.uniorder.dto.openapi.order;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;

@NoArgsConstructor
@AllArgsConstructor
@Data
@ToString
public class UnifiedOrderGoodsDto implements Serializable {

	@ApiModelProperty("成功持久化后产生-不必传")
	private Long unifiedOrderGoodsId;

	@ApiModelProperty("订单号")
	private String orderSn;
	@ApiModelProperty("退单号")
	private String refundOrderSn;

	@ApiModelProperty("商品Id")
	private Long       goodsId;
	@ApiModelProperty("第三方接口-快照订单商品Id")
	private Long       outSnapshotOrderGoodsId;
	@ApiModelProperty("商品名称")
	private String     goodsName;
	@ApiModelProperty("商品名称 别名")
	private String     goodsAlias;
	@ApiModelProperty("商品类型:1-商品;2-运费;3-杂费;4-赠品;")
	private Integer    goodsType;
	@ApiModelProperty("商品数量")
	private Integer    quantity;
	@ApiModelProperty("商品单位")
	private String     unit;
	@ApiModelProperty("商品销售价")
	private BigDecimal sellingPrice;
	@ApiModelProperty("商品成本价")
	private BigDecimal costPrice;

	@ApiModelProperty("商户税率 税率 取值(0-100%)")
	private BigDecimal merchTaxRate;
	@ApiModelProperty("商户税率 编码")
	private String     merchTaxCode;
	@ApiModelProperty("商户税率 ID")
	private Long       merchTaxId;

	@ApiModelProperty("平台税率 税率 取值(0-100%)")
	private BigDecimal operationTaxRate;
	@ApiModelProperty("平台税率 编码")
	private String     operationTaxCode;
	@ApiModelProperty("平台税率 ID")
	private Long       operationTaxId;

	@ApiModelProperty("三级分类 一级分类 ID")
	private Long   cateIdLv1;
	@ApiModelProperty("三级分类 一级分类 名称")
	private String cateNameLv1;
	@ApiModelProperty("三级分类 二级分类 ID")
	private Long   cateIdLv2;
	@ApiModelProperty("三级分类 二级分类 名称")
	private String cateNameLv2;
	@ApiModelProperty("三级分类 三级分类 ID")
	private Long   cateIdLv3;
	@ApiModelProperty("三级分类 三级分类 名称")
	private String cateNameLv3;

	@ApiModelProperty("商品规格")
	private String selfOption;

	@ApiModelProperty("商品方向:1-正单;-1-退单")
	private Integer direction;

	@ApiModelProperty("客户对账锁定:0-正常;1-销定")
	private Integer goodsLockingCustomer;
	@ApiModelProperty("供应商对账锁定:0-正常;1-销定")
	private Integer goodsLockingSupplier;

	@ApiModelProperty("客户对账:1-已对账;2-未对账")
	private Integer accountingStateCustomer;
	@ApiModelProperty("供应商对账:1-已对账;2-未对账")
	private Integer accountingStateSupplier;

	@ApiModelProperty("0-未回款;1-已回款;")
	private Integer backAccountStatus;

//	private Date createTime;
//	private Long createUserId;
//	private Date updateTime;
//	private Long updateUserId;

	@ApiModelProperty("其他属性(第三方系统对映统一订单商品字段对映不上时,字段差集作为Json结构体填充)")
	private String goodsParams;

	private static final long serialVersionUID = 1L;
}
