package cn.superdesk.uniorder.dto.param.thirdpart.qchjc.order;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author xc
 * @description
 * @date 2022/6/15 10:30
 */
@NoArgsConstructor
@AllArgsConstructor
@Data
@ToString
public class QchjcJdOrderParamReceive {
    //中间表id
    private Long id;


    @ApiModelProperty("结算时间;")
    private Date accountingTime;
    @ApiModelProperty("完成状态;业务方归类订单状态推送完成状态:1-已完成;2-未完成;3-已取消/已作废/已删除;")
    private Integer completState;

    @ApiModelProperty("订单 创建时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date    createTime;
    @ApiModelProperty("订单 创建人Id")
    private String  createUserId;

    @ApiModelProperty("物流单号,传京东子单号")
    private String expressSn;
    @ApiModelProperty("快递拼音简写 eg:jd")
    private String express;
    @ApiModelProperty("快递名称 eg:京东快递")
    private String expressCompany;

    @ApiModelProperty("订单 完成时间;")
    private Date finishTime;

    @ApiModelProperty("订单销售金额=运费+商品销售金额")
    private BigDecimal orderAmount;
    @ApiModelProperty("订单成本金额")
    private BigDecimal orderCostAmount;

    @ApiModelProperty("引用值 List<QchjcJdOrderGoodsParam>")
    List<QchjcJdOrderGoodsParamReceive> orderGoodsSelected;

    @ApiModelProperty("订单号")
    private String  orderSn;
    @ApiModelProperty("外部订单号")
    private String  orderSnOutTrade;
    @ApiModelProperty("订单状态(第三方系统)")
    private Integer orderState;
    @ApiModelProperty("订单状态名称(第三方系统)")
    private String  orderStateName;
    @ApiModelProperty("订单类型:1-订单;2-退单")
    private Integer orderType;
    @ApiModelProperty("其他属性(第三方系统对映统一订单字段对映不上时,字段差集作为Json结构体填充)")
    private String  otherParams;
    @ApiModelProperty("第三方接口-快照订单Id")
    private String  outSnapshotOrderId;

    @ApiModelProperty("付款状态(第三方系统)")
    private Integer payState;
    @ApiModelProperty("支付状态名称(第三方系统)")
    private String  payStateName;
    @ApiModelProperty("订单 支付时间;")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date    payTime;
    @ApiModelProperty("支付方式(第三方系统)")
    private Integer payType;
    @ApiModelProperty("支付方式名称(第三方系统)")
    private String  payTypeName;

    @ApiModelProperty("下单人-部门")
    private String purchaseDepartmentName;
    @ApiModelProperty("下单人-联系电话")
    private String purchasePhone;
    @ApiModelProperty("下单人-采购员Id")
    private String purchaseUserId;
    @ApiModelProperty("下单人-采购员名字")
    private String purchaseUserName;
    @ApiModelProperty("下单人-企业-引用值")
    private String purchaseVirtId;
    @ApiModelProperty("下单人-企业-引用值")
    private String purchaseVirtName;

    @ApiModelProperty("收货方-详细地址")
    private String recAddress;
    @ApiModelProperty("收货方-Id")
    private String recUserId;
    @ApiModelProperty("收货方-名称")
    private String recUserName;
    @ApiModelProperty("收货方-电话")
    private String recUserPhone;

    @ApiModelProperty("退单sn标记，正单时不传，退单时传对应正单的order_sn")
    private String refundOrderSn;


    @ApiModelProperty("备注")
    private String remarks;

    @ApiModelProperty("订单 发货时间;")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date sendTime;

    @ApiModelProperty("销售方-引用值")
    private String supplierId;
    @ApiModelProperty("销售方-引用值")
    private String supplierName;

    @ApiModelProperty("运费")
    private BigDecimal transportAmount;
    @ApiModelProperty("商户承担运费")
    private BigDecimal transportMerchantAssumeAmount;

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

    @ApiModelProperty("订单 最后更新时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date   updateTime;
    @ApiModelProperty("订单 最后更新人Id")
    private String updateUserId;

    @ApiModelProperty("项目ID-固定值")
    private Long   outOrgId;
    @ApiModelProperty("项目名称-固定值")
    private String outOrgName;

    private static final long serialVersionUID = 1L;
}
