package com.sckw.transport.model.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * @author PC
 */
@Data
public  class LogisticData implements Serializable {
    @Serial
    private static final long serialVersionUID = -4781207406119020652L;

    /**
     * 物流订单编号
     */
    private String lOrderNo;
        /**
         * 合同id
         */
        @NotNull(message = "合同id不能为空")
        private Long contractId;

        /**
         * 合同编号
         */
        @NotBlank(message = "合同编号不能为空")
        private String contractNo;

        /**
         * 合同名称
         */
        @NotBlank(message = "合同名称不能为空")
        private String contractName;
        /**
         * 承运单位ID
         */
        @NotBlank(message = "承运单位ID不能为空")
        private Long acceptCompanyId;

        /**
         * 承运联系电话
         */
        @NotBlank(message = "承运联系电话不能为空")
        private String acceptContactPhone;


        /**
         * 承运联系人
         */
        @NotBlank(message = "承运联系人id不能为空")
        private String acceptContacts;

        /**
         * 承运联系人id
         */
        @NotBlank(message = "承运联系人id不能为空")
        private Long acceptContactsId;

        /**
         * 承运单位
         */
        @NotBlank(message = "承运单位不能为空")
        private String acceptCompany;
        /**
         * 运价
         */
        @NotNull(message = "运价不能为空")
        private BigDecimal price;

        /**
         * 运价方式
         */
        @NotNull(message = "运价方式不能为空")
        private Long priceType;



        /**
         * 总量
         */
        @NotNull(message = "总量不能为空")

        private BigDecimal amount;

        /**
         * 总量单位
         */
        @NotBlank(message = "总量单位不能为空")
        private String amountUnit;

        /**
         * 合理损耗
         */

        private BigDecimal loss;
        /**
         * 支付方式
         */
        @NotNull(message = "支付方式不能为空")
        private Long payment;


        /**
         * 签约方式
         */
        @NotNull(message = "签约方式不能为空")
        private Integer signingWay;

        /**
         * 合理损耗单位
         */
        @NotBlank(message = "合理损耗单位不能为空")
        private String lossUnit;


        /**
         * 备注
         */
        private String remark;
        /**
         * 订单创建类型（1.贸易订单生成，2自建订单生成）
         */
        private Integer type;


        /**
         * 派车方式
         */
        private Integer dispatchWay;

    }