package com.hotwj.platform.resourceManagement.company.domain.vo;

import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import com.hotwj.platform.resourceManagement.company.domain.SysCompany;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;


/**
 * 企业基本信息视图对象 sys_company
 *
 * @author shihongwei
 * @date 2025-12-02
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = SysCompany.class)
public class SysCompanyVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    private Long id;

    /**
     * 上级代理商id
     */
    private Long agentId;

    /**
     * 代理商业务员id
     */
    private Long salesmanId;

    @ExcelProperty(value = "序号", index = 0)
    private Integer index;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 企业名称
     */
    @ExcelProperty(value = "企业名称", index = 1)
    private String companyName;

    /**
     * 企业简称
     */
    private String companyShortName;

    /**
     * 企业类型（下拉选项值或字典编码）
     */
    @ExcelDictFormat(dictType = "hot_enterprise_type")
    private String companyType;

    /**
     * 所属行业（下拉选项值或字典编码）
     */
    @ExcelProperty(value = "所属行业", index = 2, converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "hot_industry")
    private String industry;

    /**
     * 法人姓名
     */
    private String legalPersonName;

    /**
     * 法人手机号
     */
    private String legalPersonPhone;

    /**
     * 负责人姓名
     */
    @ExcelProperty(value = "负责人姓名", index = 4)
    private String responsibleName;

    /**
     * 负责人手机号
     */
    @ExcelProperty(value = "负责人手机号", index = 5)
    private String responsibleMobile;

    /**
     * 注册地址
     */
    private String registeredAddress;

    /**
     * 办公地址
     */
    private String officeAddress;

    /**
     * 办公电话
     */
    private String officePhone;

    /**
     * 电子公章文件URL（或OSS地址）
     */
    @ExcelDictFormat(readConverterExp = "或=OSS地址")
    private String sealUrl;

    /**
     * 状态：1=正常 0=禁用
     */
    @ExcelProperty(value = "企业状态", index = 6, converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "hot_company_status")
    private Long status;

    /**
     * 0=正常, 1=已删除
     */
    private Long isDeleted;

    /**
     * 省份代码
     */
    private String provinceCode;

    /**
     * 城市代码
     */
    private String cityCode;

    /**
     * 行政区划代码
     */
    private String regionCode;

    @Translation(type = TransConstant.REGION_CODE_TO_NAME, mapper = "regionCode")
    @ExcelProperty(value = "区划", index = 3)
    private String regionLabel;

    /**
     * 统一社会信用代码
     */
    private String creditCode;

    /**
     * 成立日期
     */
    private LocalDate establishDate;

    /**
     * 注册资本（万元）
     */
    private BigDecimal registeredCapital;

    /**
     * 经营期限
     */
    private LocalDate businessTerm;

    /**
     * 是否长期经营
     */
    private Boolean businessLongTerm;

    /**
     * 经营范围
     */
    private String businessScope;

    /**
     * 营业执照图片URL（或OSS地址）
     */
    private String businessLicenseImage;

    /**
     * 道路经营许可证号
     */
    private String roadPermitNumber;

    /**
     * 道路经营许可证过期日期
     */
    private LocalDate roadExpireDate;

    /**
     * 道路许可证经营范围
     */
    private String roadBusinessScope;

    /**
     * 道路经营许可证文件URL（或OSS地址） 多个
     */
    private String roadPermitFiles;

    /**
     * 驾驶员邀请码
     */
    private String driverInvitationCode;


    /**
     * 驾驶员邀请码二维码URL
     */
    private String driverInvitationQrCodeUrl;

    /**
     * 其他附件（逗号分隔）
     */
    private String otherAttachments;
}
