package com.hotwj.platform.driverManagement.driver.domain;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.mybatis.core.domain.BaseEntity;

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

/**
 * 驾驶员基本信息对象 hot_driver
 *
 * @author shihongwei
 * @date 2025-12-15
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("hot_driver")
public class HotDriver extends BaseEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id")
    private String id;

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

    /**
     * 默认车辆ID
     */
    @TableField(updateStrategy = FieldStrategy.ALWAYS)
    private String vehicleId;

    /**
     * 已绑定车辆ID集合，多个以逗号分隔
     */
    @TableField(updateStrategy = FieldStrategy.ALWAYS)
    private String vehicleIds;

    /**
     * 默认车牌号
     */
    @TableField(updateStrategy = FieldStrategy.ALWAYS)
    private String plateNumber;



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

    /**
     * 姓名
     */
    private String name;

    /**
     * 人员类型（字典/下拉）
     */
    private String personType;

    /**
     * 驾驶年限（年）
     */
    private Long drivingYears;

    /**
     * 手机号码
     */
    private String phone;

    /**
     * 性别
     */
    private String gender;

    /**
     * 民族
     */
    private String nation;

    /**
     * 参加工作时间
     */
    private Date startWorkDate;

    /**
     * 户籍地址
     */
    private String householdAddress;

    /**
     * 籍贯
     */
    private String nativePlace;

    /**
     * 现居地
     */
    private String currentAddress;

    /**
     * 是否党员：1是 0否
     */
    private Long isPartyMember;

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

    /**
     * 婚姻状态：1已婚 0未婚
     */
    private Long maritalStatus;

    /**
     * 学历（字典）
     */
    private String education;

    /**
     * 健康状态/体检结论（字典）
     */
    private String healthStatus;

    /**
     * 出生日期
     */
    private Date birthDate;

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

    /**
     * 身份证到期日期
     */
    private Date idCardExpireDate;

    /**
     * 身份证长期有效：1是 0否
     */
    private Long idCardLongTerm;

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

    /**
     * 身份证反面URL
     */
    private String idcardBackUrl;

    /**
     * 寸照URL
     */
    private String portraitUrl;

    /**
     * 电子签名URL
     */
    private String signatureUrl;

    /**
     * 诚信承诺到期日期
     */
    private Date integrityPromiseExpireDate;

    /**
     * 诚信考核等级（字典）
     */
    private String integrityLevel;

    /**
     * 诚信承诺书附件URL
     */
    private String integrityPromiseAttachmentUrl;

    /**
     * 人事意见
     */
    private String hrOpinion;

    /**
     * 部门意见
     */
    private String deptOpinion;

    /**
     * 公司领导意见
     */
    private String leaderOpinion;

    /**
     * 处分或表彰说明
     */
    private String rewardOrPunishment;

    /**
     * 签名
     */
    private String signature;

    /**
     * 状态：1=正常 0=禁用
     */
    private Long status;

    /**
     * 审核状态：0=待审核 1=审核通过 2=审核驳回
     */
    private Integer auditStatus;

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

    /**
     * 驾驶证初次领证日期
     */
    private Date driverLicenseFirstIssueDate;

    /**
     * 驾驶证到期时间
     */
    @TableField(updateStrategy =  FieldStrategy.ALWAYS)
    private Date driverLicenseExpireDate;

    /**
     * 驾驶证是否长期 0否 1是
     */
    @TableField(updateStrategy =  FieldStrategy.ALWAYS)
    private Long driverLicenseLongTerm;

    /**
     * 准驾车型
     */
    private String driverLicenseVehicleType;

    /**
     * 驾驶证号
     */
    private String driverLicenseNo;

    /**
     * 档案号
     */
    private String driverLicenseArchiveNo;

    /**
     * 驾驶证发证机关
     */
    private String driverLicenseOrg;

    /**
     * 驾驶证主页图片地址
     */
    private String driverLicenseMainImg;

    /**
     * 驾驶证副页图片地址
     */
    private String driverLicenseViceImg;

    /**
     * 驾驶证其他附页图片地址
     */
    private String driverLicenseOtherImg;

    /**
     * 从业资格证类别
     */
    private String qualificationType;

    /**
     * 从业资格证号
     */
    private String qualificationNo;

    /**
     * 从业资格证初次申领日期
     */
    private Date qualificationFirstIssueDate;

    /**
     * 从业资格证有效起始日期
     */
    private Date qualificationValidStartDate;

    /**
     * 从业资格证有效终止日期
     */
    private Date qualificationValidEndDate;

    /**
     * 从业资格证发证机关
     */
    private String qualificationOrg;

    /**
     * 从业资格证图片地址
     */
    private String qualificationImg;


}
