package com.sckw.path.entity.req;

import jakarta.validation.constraints.DecimalMin;
import jakarta.validation.constraints.Digits;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.validator.constraints.Length;

import java.math.BigDecimal;

/**
 * @author: yzc
 * @date: 2024-03-01  14:34
 * @desc: 编辑运价参数
 */
@Getter
@Setter
@ToString
public class UpdatePathParam {

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

    /**
     * 路径名称
     */
    @NotBlank(message = "运价名称不能为空")
    @Length(max = 40, message = "运价名称最多支持50字")
    private String name;

    /**
     * 起始地-地址名称
     */
    @NotBlank(message = "路径起始位置不能为空")
    private String loadName;

    /*
    起始地-所在地区
     */
    private Integer loadCityCode;

    /*
    起始地-所属区域名称
     */
    private String loadCityName;

    /*
    起始地-详细地址
     */
    private String loadDetailAddress;

    /*
    起始地-纬度
     */
    private String loadLat;

    /*
    起始地-经度
     */
    private String loadLng;

    /**
     * 目的地-地址名称
     */
    @NotBlank(message = "路径结束位置不能为空")
    private String unloadName;

    /*
    目的地-所属区域名称
     */
    private String unloadCityName;

    /*
    目的地-所在地区
     */
    private String unloadCityCode;

    /*
    目的地-详细地址
     */
    private String unloadDetailAddress;

    /*
    目的地-纬度
     */
    private String unloadLat;

    /*
    目的地-经度
     */
    private String unloadLng;

    //@NotNull(message = "结束位置所属企业不能为空")
    //private Long unloadEntId;

    /**
     * 行驶里程/公里
     */
    @NotNull(message = "行驶里程/公里不能为空")
    @Digits(integer = 7, fraction = 2, message = "行驶里程格式错误")
    @DecimalMin(value = "0", message = "行驶里程不能小于零")
    private BigDecimal transportMileage;

    /**
     * 运输单价（元/公里）
     */
    @Digits(integer = 10, fraction = 6, message = "运输单价格式错误")
    @DecimalMin(value = "0", message = "运输单价不能小于零")
    private BigDecimal transportPrice;

    /**
     * 运输总价
     */
    @Digits(integer = 10, fraction = 6, message = "运输总价格式错误")
    @DecimalMin(value = "0", message = "运输总价不能小于零")
    @NotNull(message = "运输总价不能为空")
    private BigDecimal transportAmount;

    /**
     * 备注
     */
    private String remark;
}