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

import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import com.hotwj.platform.resourceManagement.companySafetyManager.domain.HotCompanySafetyManager;
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.util.Date;


/**
 * 安全管理人员视图对象 hot_company_safety_manager
 *
 * @author shihongwei
 * @date 2025-12-09
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = HotCompanySafetyManager.class)
public class HotCompanySafetyManagerVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

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

    /**
     * 公司ID
     */
    private Long companyId;

    /**
     * 上级管理人员ID
     */
    private Long reporterId;

    /**
     * 上级管理人员
     */
    @Translation(type = TransConstant.SAFETY_MANAGER_ID_TO_NAME, mapper = "reporterId")
    @ExcelProperty(value = "上级管理人员", index = 5)
    private String reporterName;

    /**
     * 姓名
     */
    @ExcelProperty(value = "姓名", index = 0)
    private String name;

    /**
     * 身份证号
     */
    private String idCardNo;

    /**
     * 手机号
     */
    @ExcelProperty(value = "手机号", index = 1)
    private String phone;

    /**
     * 登录密码
     */
    private String loginPassword;

    /**
     * 是否党员(0否,1是)
     */
    private Long isPartyMember;

    /**
     * 政治面貌
     */
    private String politicalStatus;

    /**
     * 是否部门负责人(0否,1是)
     */
    @ExcelProperty(value = "是否部门负责人", index = 4, converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=是,0=否")
    private Long isDepartmentHead;

    /**
     * 是否公司负责人(0否,1是)
     */
    private Long companyHead;

    /**
     * 入职日期
     */
    private Date entryDate;

    /**
     * 岗位名称
     */
    @ExcelProperty(value = "岗位名称", index = 3)
    private String jobName;

    /**
     * 岗位职责
     */
    private String jobDuty;

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

    /**
     * 登录IP
     */
    private String loginIp;

    /**
     * 最近登录时间
     */
    private Date lastLoginTime;

    /**
     * sys_user表的id
     */
    private Long userId;

    /**
     * 所属部门ID
     */
    private Long deptId;

    /**
     * 部门名称
     */
    @ExcelProperty(value = "部门", index = 2)
    private String deptName;

    /**
     * 权限类型
     */
    private String permissionType;

    private Long permissionRoleId;

    /**
     * 家庭住址
     */
    private String address;

    /**
     * 微信号
     */
    private String wechatId;

    /**
     * 身份证正面URL
     */
    private String idcardFrontUrl;

    /**
     * 身份证正面URLUrl
     */
    @Translation(type = TransConstant.OSS_ID_TO_URL, mapper = "idcardFrontUrl")
    private String idcardFrontUrlUrl;
    /**
     * 身份证反面URL
     */
    private String idcardBackUrl;

    /**
     * 身份证反面URLUrl
     */
    @Translation(type = TransConstant.OSS_ID_TO_URL, mapper = "idcardBackUrl")
    private String idcardBackUrlUrl;
    /**
     * 头像URL
     */
    private String avatarUrl;

    /**
     * 头像URLUrl
     */
    @Translation(type = TransConstant.OSS_ID_TO_URL, mapper = "avatarUrl")
    private String avatarUrlUrl;
    /**
     * 任命书URL
     */
    private String appointmentDocUrl;

    /**
     * 任命书URLUrl
     */
    @Translation(type = TransConstant.OSS_ID_TO_URL, mapper = "appointmentDocUrl")
    private String appointmentDocUrlUrl;
    /**
     * 上岗资格证编号
     */
    private String certificateNo;

    /**
     * 上岗资格证到期日期
     */
    private Date certificateExpireDate;

    /**
     * 发证机关
     */
    private String issuingAuthority;

    /**
     * 证书附件URL
     */
    private String certificateAttachmentUrl;

    /**
     * 证书附件URLUrl
     */
    @Translation(type = TransConstant.OSS_ID_TO_URL, mapper = "certificateAttachmentUrl")
    private String certificateAttachmentUrlUrl;
    /**
     * 电子签名URL
     */
    private String signatureUrl;

    /**
     * 电子签名URLUrl
     */
    @Translation(type = TransConstant.OSS_ID_TO_URL, mapper = "signatureUrl")
    private String signatureUrlUrl;
    /**
     * 0=正常,1=已删除
     */
    private Long isDeleted;

    /**
     * 是否离职（0否 1是）
     */
    @ExcelProperty(value = "是否离职", index = 7, converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=是,0=否")
    private Long isResigned;

    /**
     * 状态（0否 1是）
     */
    @ExcelProperty(value = "是否启用", index = 6, converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=是,0=否")
    private Long status;


}
