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

import io.swagger.v3.oas.annotations.media.Schema;
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;

/**
 * @desc: 地址信息
 * @author: yzc
 * @date: 2023-07-05 10:57
 */
@Getter
@Setter
@ToString
public class AddressInfo {

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

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

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

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

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

    /**
     * 所属区域名称
     */
    @Schema(description = "所属区域名称")
    @NotBlank(message = "所属区域名称不能为空")
    @Length(max = 50,message = "所属区域名称最长50字符")
    private String cityName;

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

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

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

    /**
     * 电子围栏
     */
    @Schema(description = "电子围栏")
    private String fence;

}
