package cn.iocoder.yudao.module.visit.controller.admin.customerinfo.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.math.BigDecimal;

@Schema(description = "管理后台 - 客户信息新增/修改 Request VO")
@Data
public class CustomerInfoSaveReqVO {

    @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long id;

    @Schema(description = "客户姓名", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "客户姓名不能为空")
    private String customerName;

    @Schema(description = "联系方式")
    @Pattern(regexp = "^$|^\\d{11}$", message = "联系方式必须是11位数字")
    private String contact;

    @Schema(description = "公司名称", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "公司名称不能为空")
    private String companyName;

    @Schema(description = "性质等级", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "性质等级不能为空")
    private Integer customerType;

    @Schema(description = "省名称", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "省名称不能为空")
    private String provinceName;

    @Schema(description = "市名称", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "市名称不能为空")
    private String cityName;

    @Schema(description = "区名称", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "区名称不能为空")
    private String areaName;

    @Schema(description = "所在地区", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "所在地区不能为空")
    private String regionFullName;

    @Schema(description = "详细地址", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "详细地址不能为空")
    private String locationText;

    @Schema(description = "经度", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "经度不能为空")
    private BigDecimal longitude;

    @Schema(description = "纬度", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "纬度不能为空")
    private BigDecimal latitude;

    @Schema(description = "定位静态图 URL", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "定位静态图 URL不能为空")
    private String locationImage;

    @Schema(description = "产品信息")
    private String productIds;

    @Schema(description = "产品信息名称")
    private String productNames;

    @Schema(description = "客户部门")
    private String department;

}