package cn.iocoder.yudao.module.asset.controller.admin.supplier.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.Pattern;

/**
 * 供应商信息 Base VO
 *
 * @author 芋道源码
 */
@Data
public class SupplierBaseVO {

    @Schema(description = "供应商编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "GYS-2025-001")
    @NotBlank(message = "供应商编码不能为空")
    private String supplierCode;

    @Schema(description = "合作状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "已合作")
    @NotBlank(message = "合作状态不能为空")
    private String coopStatus;

    @Schema(description = "供应商名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "嘉兴某某加氢站")
    @NotBlank(message = "供应商名称不能为空")
    private String supplierName;

    @Schema(description = "供应商类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "加氢站")
    @NotBlank(message = "供应商类型不能为空")
    private String type;

    @Schema(description = "省份", example = "浙江省")
    private String province;

    @Schema(description = "城市", example = "嘉兴市")
    private String city;

    @Schema(description = "详细地址", example = "浙江省嘉兴市南湖区科技大道1号")
    private String address;

    @Schema(description = "区域", example = "华东")
    private String region;

    @Schema(description = "联系人", example = "张三")
    private String contact;

    @Schema(description = "联系手机", example = "13800138001")
    @Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确")
    private String contactMobile;

    @Schema(description = "联系电话", example = "0571-88888888")
    private String contactPhone;

    @Schema(description = "邮箱", example = "zhangsan@example.com")
    @Email(message = "邮箱格式不正确")
    private String email;

    @Schema(description = "统一社会信用代码/身份证号", example = "91330400MA2XXXXX1")
    private String creditCodeOrId;

    @Schema(description = "备注", example = "")
    private String remark;

    @Schema(description = "税号", example = "91330400MA2XXXXX1")
    private String taxId;

    @Schema(description = "开票地址", example = "浙江省嘉兴市南湖区科技大道1号")
    private String invoiceAddress;

    @Schema(description = "开票电话", example = "0571-88888888")
    private String invoicePhone;

    @Schema(description = "账号", example = "6222021234567890123")
    private String account;

    @Schema(description = "开户行", example = "中国工商银行嘉兴分行")
    private String openingBank;

    @Schema(description = "邮寄地址", example = "浙江省嘉兴市南湖区科技大道1号")
    private String mailingAddress;

}
