package com.sckw.report.service.param;

import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * @author lfdc
 * @description 物流托运bo
 * @date 2023-07-06 14:07:50
 */

@Data
@Accessors(chain = true)
public class LogisticsConsignmentParam {
    /**
     * 分配承运量
     */
    private Long carryingCapacity;
    /**
     * 分配承运量使用的单位
     */
    private String carryingCapacityUnit;

    /**
     * 托运单位
     */
    @NotNull(message = "托运单位名称不能为空")
    private String checkCompany;
    /**
     * 托运单位id
     */
    @NotNull(message = "托运单位id不能为空")
    private String checkCompanyId;

    /**
     * 联系电话
     */
    private String checkContactPhone;
    /**
     * 联系人
     */
    private String checkContacts;

    /**
     * 合理损耗
     */
    private Long loss;
    /**
     * 合理损耗单位
     */
    private String lossUnit;

    /**
     * 商品价值（扣亏货值）
     */
    private Long goodsPrice;
    /**
     * 商品价值（扣亏货值）单位
     */
    private String goodsPriceUnit;
    /**
     * 承运单位
     */
    @NotBlank(message = "承运单位不能为空")
    private String consignCompany;

    /**
     * 承运单位ID
     */
    @NotBlank(message = "承运单位ID不能为空")
    private String consignCompanyId;

    /**
     * 联系电话
     */
    private String consignContactPhone;
    /**
     * 联系人
     */
    private String consignContacts;

    /**
     * 结算周期(周结、月结、季结)
     */
    private Long settlementCycle;
    /**
     * 合同
     */
    private String contract;
    /**
     * 合同id
     */
    private String contractId;
    /**
     * 合同编号
     */
    private String contractNo;

    /**
     * 合同名称
     */
    private String contractName;

    /**
     * 合同签约方式
     */
    @NotNull(message = "合同签约方式不能为空")
    private String payment;
    /**
     * 货物名称
     */
    private String goodsName;

    /**
     * 货物id
     */
    @NotNull(message = "货物id不能为空")
    private String goodsId;

    /**
     * skuId
     */
    private String skuId;
    /**
     * 是否全量
     */
    @NotNull(message = "是否全量不能为空")
    private Boolean isFullDose;
    /**
     * 订单id
     */
    @JsonProperty("lOrderId")
    private String lOrderId;
    /**
     * 订单编号
     */
    @JsonProperty("lOrderNo")
    private String lOrderNo;
    /**
     * 运价
     */
    @NotNull(message = "运价不能为空")
    private Long price;
    /**
     * 运价方式
     */
    private String priceType;
    /**
     * 计划收货时间
     */
    private String receiveGoodsDateTime;
    /**
     * 计划发货时间
     */
    private String shipmentsDateTime;
    /**
     * 税率
     */
    private Long taxRate;
    /**
     * 备注
     */
    private String remark;
}
