package com.ruoyi.info.collection.domain.excel;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.ruoyi.common.annotation.DictDropdown;
import com.ruoyi.common.annotation.Required;
import com.ruoyi.common.annotation.TextFormat;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
 * 信贷客户家庭关系Excel导入导出对象
 *
 * @author ruoyi
 * @date 2026-02-11
 */
@Data
public class CcdiCustFmyRelationExcel implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /** 信贷客户身份证号 */
    @ExcelProperty(value = "信贷客户身份证号*", index = 0)
    @ColumnWidth(20)
    @Required
    @TextFormat
    private String personId;

    /** 关系类型 */
    @ExcelProperty(value = "关系类型*", index = 1)
    @ColumnWidth(15)
    @DictDropdown(dictType = "ccdi_relation_type")
    @Required
    private String relationType;

    /** 关系人姓名 */
    @ExcelProperty(value = "关系人姓名*", index = 2)
    @ColumnWidth(15)
    @Required
    private String relationName;

    /** 性别 */
    @ExcelProperty(value = "性别", index = 3)
    @ColumnWidth(10)
    @DictDropdown(dictType = "ccdi_indiv_gender")
    private String gender;

    /** 出生日期 */
    @ExcelProperty(value = "出生日期", index = 4)
    @ColumnWidth(15)
    private Date birthDate;

    /** 关系人证件类型 */
    @ExcelProperty(value = "关系人证件类型*", index = 5)
    @ColumnWidth(15)
    @DictDropdown(dictType = "ccdi_certificate_type")
    @Required
    private String relationCertType;

    /** 关系人证件号码 */
    @ExcelProperty(value = "关系人证件号码*", index = 6)
    @ColumnWidth(20)
    @Required
    @TextFormat
    private String relationCertNo;

    /** 手机号码1 */
    @ExcelProperty(value = "手机号码1", index = 7)
    @ColumnWidth(15)
    @TextFormat
    private String mobilePhone1;

    /** 手机号码2 */
    @ExcelProperty(value = "手机号码2", index = 8)
    @ColumnWidth(15)
    @TextFormat
    private String mobilePhone2;

    /** 微信名称1 */
    @ExcelProperty(value = "微信名称1", index = 9)
    @ColumnWidth(15)
    private String wechatNo1;

    /** 微信名称2 */
    @ExcelProperty(value = "微信名称2", index = 10)
    @ColumnWidth(15)
    private String wechatNo2;

    /** 微信名称3 */
    @ExcelProperty(value = "微信名称3", index = 11)
    @ColumnWidth(15)
    private String wechatNo3;

    /** 详细联系地址 */
    @ExcelProperty(value = "详细联系地址", index = 12)
    @ColumnWidth(30)
    private String contactAddress;

    /** 关系详细描述 */
    @ExcelProperty(value = "关系详细描述", index = 13)
    @ColumnWidth(30)
    private String relationDesc;

    /** 生效日期 */
    @ExcelProperty(value = "生效日期", index = 14)
    @ColumnWidth(15)
    private Date effectiveDate;

    /** 失效日期 */
    @ExcelProperty(value = "失效日期", index = 15)
    @ColumnWidth(15)
    private Date invalidDate;

    /** 备注 */
    @ExcelProperty(value = "备注", index = 16)
    @ColumnWidth(30)
    private String remark;
}
