package com.sckw.order.model.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;

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

/**
 * @desc: 订单列表响应参数
 * @author: yzc
 * @date: 2023-07-12 17:45
 */
@Getter
@Setter
@ToString
@Accessors(chain = true)
public class OrderListResDTO {

    /**
     * 订单id
     */
    @JsonProperty("tOrderId")
    private Long tOrderId;
    /**
     * 订单状态
     */
    private Integer status;
    /**
     * 订单编号
     */
    @JsonProperty("tOrderNo")
    private String tOrderNo;
    /**
     * 采购企业主键ID
     */
    private Long procureEntId;

    /**
     * 采购单位
     */
    private String procureFirmName;

    /**
     * 销售单位主键ID
     */
    private Long supplyEntId;
    /**
     * 销售单位
     */
    private String supplyFirmName;
    /**
     * 交易方式(预付款、货到付款）
     */
    private String trading;

    /**
     * 交付类型（签发交付、签收交付）
     */
    private String deliveryType;

    /**
     * 提货方式（采方自提、供应配送）
     */
    private String pickupType;

    /**
     * 下单方式（自主下单/代客下单）
     */
    private String source;

    /**
     * 合同主键
     */
    private Long contractId;

    /**
     * 合同编号
     */
    private String contractNo;

    /**
     * 商品id
     */
    private Long goodsId;

    /**
     * 订单成交单价
     */
    private BigDecimal unitPrice;
    /**
     * 订单金额
     */
    private BigDecimal price;

    /**
     * 订单总量
     */
    private BigDecimal amount;
    /**
     * 已委托量
     */
    private BigDecimal entrustAmount;

    /**
     * 实际交付量
     */
    private BigDecimal actualAmount;
    private BigDecimal loadAmount;
    private BigDecimal unloadAmount;
    private String deliveryTypeLabel;

    /**
     * 计划开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate startTime;
    /**
     * 计划结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate endTime;
    /**
     * 备注
     */
    private String remark;

    /**
     * 单位
     */
    private String unit;

    /**
     * 创建人id
     */
    private Long createBy;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    /**
     * 计费方式
     */
    private Integer chargeType;


    /**
     * 是否需要增派运力（0-否，1-是）
     */
    private Integer addVehicles;

    /**
     * 装货地址信息
     */
    private List<LoadAddressDTO> loadAddresses;

    /**
     * 卸货地址信息
     */
    private List<UnloadAddressDTO> unloadAddresses;
}
