package com.sckw.order.model.vo.req;

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

import java.math.BigDecimal;


@Getter
@Setter
@ToString
public class AddressInfoPara {

    /**
     * 地址类型（1装货地址、2卸货地址）
     */
    @NotBlank(message = "地址类型不能为空")
    @Range(min = 1, max = 2, message ="非法地址类型")
    private String addressType;

    /**
     * 地址名称
     */
    @NotBlank(message = "地址名称不能为空")
    private String name;

    /**
     * 地址类型
     */
    @NotBlank(message = "地址类型不能为空")
    private String type;

    /**
     * 联系人姓名
     */
    @NotBlank(message = "联系人姓名不能为空")
    private String contacts;

    /**
     * 联系电话
     */
    @NotBlank(message = "联系电话不能为空")
    @Pattern(regexp = "^1[3456789]\\d{9}$", message = "非法手机号格式")
    private String phone;

    /**
     * 所在地区
     */
    @NotNull(message = "所在地区code不能为空")
    private Integer cityCode;

    /**
     * 所属区域名称
     */
    @NotBlank(message = "所属区域名称不能为空")
    private String cityName;

    /**
     * 详细地址
     */
    @NotBlank(message = "详细地址不能为空")
    private String detailAddress;

    /**
     * 纬度
     */
    @NotBlank(message = "纬度不能为空")
    private String lat;

    /**
     * 经度
     */
    @NotBlank(message = "经度不能为空")
    private String lng;

    /**
     * 电子围栏
     */
    private String fence;

    /**
     * 货物数量
     */
    @NotNull(message = "货物数量不能为空")
    @DecimalMin(value = "0.00",message = "分配量必须大于零")
    private BigDecimal amount;

    /**
     * 地址排序
     */
    private Integer sort;
}
