package com.maintain.business.domain.vo;

import java.util.Date;

import cn.hutool.core.convert.impl.DateConverter;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.maintain.common.annotation.ExcelDictFormat;
import com.maintain.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;

import java.io.Serializable;

/**
 * 客户信息-客户视图对象 erp_client
 *
 * @author liushuai
 * @date 2025-03-25
 */
@Data
@ExcelIgnoreUnannotated
public class ErpClientVo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Long id;

    /**
     * 客户名称
     */
    @ExcelProperty(value = "客户名称")
    @ColumnWidth(40)
    private String name;

    /**
     * 联系人
     */
    @ExcelProperty(value = "联系人")
    private String contact;

    /**
     * 性别（0男1女）
     */
    @ExcelProperty(value = "性别", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_user_sex")
    private Integer sex;

    /**
     * 联系电话
     */
    @ExcelProperty(value = "联系电话")
    private String phone;

    /**
     * 客户类型（1个人客户 2企业客户）
     */
    @ExcelProperty(value = "客户类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "client_type")
    private Integer type;

    /**
     * 证件类型（1居民身份证 2社会统一信用代码）
     */
    @ExcelProperty(value = "证件类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "zhengjianleixing")
    private Integer certificateType;

    /**
     * 证件号
     */
    @ExcelProperty(value = "证件号")
    private String certificateNumber;

    /**
     * 出生日期
     */
    @ExcelProperty(value = "出生日期")
    @ColumnWidth(19)
    private Date birthDate;

    /**
     * 联系地址
     */
    @ExcelProperty(value = "联系地址")
    private String address;

    /**
     * 客户职业
     */
    @ExcelProperty(value = "客户职业")
    private String occupation;

    /**
     * 邮箱
     */
    @ExcelProperty(value = "邮箱")
    private String mailbox;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;

    /**
     * 创建人
     */
    @ExcelProperty(value = "创建人")
    private String  createBy;

    /**
     * 创建时间
     */
    @ExcelProperty(value = "创建时间")
    @ColumnWidth(19)
    private Date  createTime;

    /**
     * 状态（0正常 1注销）
     */
    private Integer state;


}
