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

import cn.idev.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;

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

@Data
@AutoMapper(target = com.hotwj.platform.driverManagement.driver.domain.HotDriver.class)
public class HotDriverImportVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @ExcelProperty("姓名")
    private String name;

    @ExcelProperty("手机号")
    private String phone;

    @ExcelProperty("驾驶车牌号")
    private String plateNumber;

    @ExcelProperty("身份证号")
    private String idCardNo;

    @ExcelProperty("身份证到期时间")
    private String idCardExpireDate;

    @ExcelProperty("驾驶证初次领证日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date driverLicenseFirstIssueDate;

    @ExcelProperty("准驾车型")
    private String driverLicenseVehicleType;

    @ExcelProperty("驾驶证到期时间")
    private String driverLicenseExpireDate;

    @ExcelProperty("发证机关")
    private String driverLicenseOrg;

    @ExcelProperty(value = "性别", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_user_sex")
    private String gender;

    @ExcelProperty(value = "民族", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "nation")
    private String nation;

    @ExcelProperty(value = "从业资格证类别", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "hot_category_qualification_certificate")
    private String qualificationType;

    @ExcelProperty("从业资格证号")
    private String qualificationNo;

    @ExcelProperty("从业资格证初领日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date qualificationFirstIssueDate;

    @ExcelProperty("从业资格证到期时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date qualificationValidEndDate;

    @ExcelProperty("从业资格证有效起始日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date qualificationValidStartDate;

    @ExcelProperty("从业资格证发证机关")
    private String qualificationOrg;

    @ExcelProperty("出生日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date birthDate;

    @ExcelProperty("户籍地址")
    private String householdAddress;

    @ExcelProperty("现居住地址")
    private String currentAddress;

    @ExcelProperty(value = "学历", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "hot_academic")
    private String education;

    @ExcelProperty(value = "政治面貌", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "hot_political_status")
    private String politicalStatus;

    @ExcelProperty(value = "婚姻状况", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=已婚,0=未婚")
    private Long maritalStatus;

    @ExcelProperty(value = "健康状况", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "hot_health")
    private String healthStatus;

    @ExcelProperty("入职时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date entryDate;

    @ExcelProperty(value = "人员类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "hot_person_type")
    private String personType;
}
