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.TextFormat;
import lombok.Data;

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

/**
 * 实体库管理 Excel 导入模板对象
 *
 * @author ruoyi
 * @date 2026-04-17
 */
@Data
public class CcdiEnterpriseBaseInfoExcel implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @ExcelProperty(value = "统一社会信用代码*", index = 0)
    @ColumnWidth(24)
    @TextFormat
    private String socialCreditCode;

    @ExcelProperty(value = "企业名称*", index = 1)
    @ColumnWidth(30)
    private String enterpriseName;

    @ExcelProperty(value = "企业类型", index = 2)
    @ColumnWidth(18)
    @DictDropdown(dictType = "ccdi_entity_type")
    private String enterpriseType;

    @ExcelProperty(value = "企业性质", index = 3)
    @ColumnWidth(18)
    @DictDropdown(dictType = "ccdi_enterprise_nature")
    private String enterpriseNature;

    @ExcelProperty(value = "行业分类", index = 4)
    @ColumnWidth(18)
    private String industryClass;

    @ExcelProperty(value = "所属行业", index = 5)
    @ColumnWidth(18)
    private String industryName;

    @ExcelProperty(value = "成立日期", index = 6)
    @ColumnWidth(16)
    private Date establishDate;

    @ExcelProperty(value = "注册地址", index = 7)
    @ColumnWidth(36)
    private String registerAddress;

    @ExcelProperty(value = "法定代表人", index = 8)
    @ColumnWidth(18)
    private String legalRepresentative;

    @ExcelProperty(value = "法定代表人证件类型", index = 9)
    @ColumnWidth(22)
    @DictDropdown(dictType = "ccdi_certificate_type")
    private String legalCertType;

    @ExcelProperty(value = "法定代表人证件号码", index = 10)
    @ColumnWidth(24)
    @TextFormat
    private String legalCertNo;

    @ExcelProperty(value = "股东1", index = 11)
    @ColumnWidth(18)
    private String shareholder1;

    @ExcelProperty(value = "股东2", index = 12)
    @ColumnWidth(18)
    private String shareholder2;

    @ExcelProperty(value = "股东3", index = 13)
    @ColumnWidth(18)
    private String shareholder3;

    @ExcelProperty(value = "股东4", index = 14)
    @ColumnWidth(18)
    private String shareholder4;

    @ExcelProperty(value = "股东5", index = 15)
    @ColumnWidth(18)
    private String shareholder5;

    @ExcelProperty(value = "经营状态", index = 16)
    @ColumnWidth(16)
    private String status;

    @ExcelProperty(value = "风险等级*", index = 17)
    @ColumnWidth(16)
    private String riskLevel;

    @ExcelProperty(value = "企业来源*", index = 18)
    @ColumnWidth(18)
    private String entSource;
}
