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

import com.fasterxml.jackson.annotation.JsonFormat;
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.Length;

import java.time.LocalDate;

/**
 * @desc: 更新运需请求参数
 * @author: yzc
 * @date: 2023-07-26 9:37
 */
@Getter
@Setter
@ToString
public class UpdateTransportDemandParam {

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

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

    /**
     * 商品分类
     */
    private String goodsType;

    /**
     * 商品规格
     */
    @Length(max = 20, message = "商品规格最多支持20字")
    private String spec;

    /**
     * 交易方式(预付款、货到付款、线下付款）
     */
    private String trading;

    /**
     * 运需单价
     */
    @Length(max = 20, message = "运需单价最多支持20字")
    @NotBlank(message = "运需单价不能为空")
    private String price;

    /**
     * 运输总量
     */
    @Length(max = 20, message = "运输总量最多支持20字")
    @NotBlank(message = "运输总量不能为空")
    private String amount;

    /**
     * 截止时间(yyyy-MM-dd)
     */
    @JsonFormat(pattern="yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate deadline;

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

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

    /**
     * 装货区域code
     */
    @NotNull(message = "装货区域code不能为空")
    private Integer loadAreaCode;

    /**
     * 装货区域名称
     */
    @NotBlank(message = "装货区域名称不能为空")
    private String loadAreaName;

    /**
     * 装货详细地址
     */
    private String loadDetailAddress;

    /**
     * 卸货区域code
     */
    @NotNull(message = "卸货区域code不能为空")
    private Integer unloadAreaCode;

    /**
     * 卸货区域名称
     */
    @NotBlank(message = "卸货区域名称不能为空")
    private String unloadAreaName;

    /**
     * 卸货详细地址
     */
    private String unloadDetailAddress;

    /**
     * 备注
     */
    @Length(max = 200, message = "备注最多支持200字")
    private String remark;
}
