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

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

import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "管理后台 - 客户 Response VO")
@Data
public class CustomerRespVO {

    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long id;

    @Schema(description = "客户编号", example = "KH-2025-001")
    private String customerCode;

    @Schema(description = "合作状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "已合作")
    private String coopStatus;

    @Schema(description = "客户名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "嘉兴某某物流有限公司")
    private String customerName;

    @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 = "13800138000")
    private String contactMobile;

    @Schema(description = "联系人座机", example = "0571-88888888")
    private String contactPhone;

    @Schema(description = "电子邮箱", example = "zhangsan@example.com")
    private String email;

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

    @Schema(description = "业务负责人列表", example = "[\"张经理\", \"李专员\"]")
    private List<String> businessManagers;

    @Schema(description = "备注", example = "VIP客户")
    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;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime createTime;

    @Schema(description = "更新时间")
    private LocalDateTime updateTime;

}
