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

import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.validator.constraints.Length;

import java.util.List;

/**
 * @desc: 新增草稿求购请求参数
 * @author: yzc
 * @date: 2023-08-15 15:26
 */
@Getter
@Setter
@ToString
public class AddDraftWantBuyParam {

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

    /**
     * 商品分类
     */
    @Length(max = 32, message = "商品分类最多支持32字")
    private String goodsType;

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

    /**
     * 支付方式集合
     */
    private List<String> tradings;

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

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

    /**
     * 联系人姓名
     */
    @NotBlank(message = "联系人姓名不能为空")
    @Length(max = 32, message = "联系人姓名最多支持32字")
    private String contacts;

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

    /**
     * 地址信息
     */
    @Valid
    private WantBuyAddressParam addressInfo;

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