package com.bs.tm.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.bs.common.annotation.Excel;
import com.bs.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * 驾驶员信息对象 tm_driver
 *
 * @author bs
 * @date 2024-02-07
 */
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("tm_driver")
@Data
public class TmDriver extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 驾驶员ID
     */
    @TableId(value = "DRIVER_ID", type = IdType.AUTO)
    @ApiModelProperty(value = "驾驶员ID")
    private Long driverId;

    /**
     * 客户代码
     */

    @Excel(name = "客户代码")
    @ApiModelProperty(value = "客户代码")
    private String custCode;

    /**
     * 驾驶员姓名
     */

    @Excel(name = "驾驶员姓名")
    @ApiModelProperty(value = "驾驶员姓名")
    private String driverName;

    /**
     * 性别
     */

    @Excel(name = "性别")
    @ApiModelProperty(value = "性别")
    private String sex;

    /**
     * 出生年月
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生年月", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "出生年月")
    private Date birthDate;

    /**
     * 手机号码
     */

    @Excel(name = "手机号码")
    @ApiModelProperty(value = "手机号码")
    private String mobileNumber;

    /**
     * 驾驶证类型
     */

    @Excel(name = "驾驶证类型")
    @ApiModelProperty(value = "驾驶证类型")
    private String licenseType;

    /**
     * 驾驶证号
     */

    @Excel(name = "驾驶证号")
    @ApiModelProperty(value = "驾驶证号")
    private String licenseNo;

    /**
     * 身份证号
     */

    @Excel(name = "身份证号")
    @ApiModelProperty(value = "身份证号")
    private String idNumber;

    /**
     * 有效期起
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "有效期起", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "有效期起")
    private Date validBegin;

    /**
     * 有效期止
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "有效期止", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "有效期止")
    private Date validEnd;

    /**
     * 下一次年检时间
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "下一次年检时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "下一次年检时间")
    private Date nextinspecTime;

    /**
     * 准驾车型
     */

    @Excel(name = "准驾车型")
    @ApiModelProperty(value = "准驾车型")
    private String driveModel;

    /**
     * 状态
     */

    @Excel(name = "状态")
    @ApiModelProperty(value = "状态")
    private String status;

    /**
     * 创建人
     */

    @Excel(name = "创建人")
    @ApiModelProperty(value = "创建人")
    private String createUser;

    /**
     * 创建时间
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "创建时间")
    private Date createDate;

    /**
     * 修改人
     */

    @Excel(name = "修改人")
    @ApiModelProperty(value = "修改人")
    private String modifyUser;

    /**
     * 修改时间
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "修改时间")
    private Date modifyDate;

    /**
     * 备注
     */

    @Excel(name = "备注")
    @ApiModelProperty(value = "备注")
    private String remark;

    /**
     * 所属车队
     */

    @Excel(name = "所属车队")
    @ApiModelProperty(value = "所属车队")
    private String motorcade;

    /**
     * 默认车头号
     */

    @Excel(name = "默认车头号")
    @ApiModelProperty(value = "默认车头号")
    private String carNo;

    /**
     * 默认车架号
     */

    @Excel(name = "默认车架号")
    @ApiModelProperty(value = "默认车架号")
    private String truckNo;

    /**
     * 司机类型
     */

    @Excel(name = "司机类型")
    @ApiModelProperty(value = "司机类型")
    private String driverType;

    /**
     * 司机属性
     */

    @Excel(name = "司机属性")
    @ApiModelProperty(value = "司机属性")
    private String driverAttribute;

    /**
     * 拼音码
     */

    @Excel(name = "拼音码")
    @ApiModelProperty(value = "拼音码")
    private String pinyinCode;

    /**
     * 入职日期
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "入职日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "入职日期")
    private Date entryDate;

    /**
     * 离职日期
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "离职日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "离职日期")
    private Date repartureDate;

    /**
     * 离职状态
     */

    @Excel(name = "离职状态")
    @ApiModelProperty(value = "离职状态")
    private String repartureStatus;

    /**
     * 从业证书ID
     */

    @Excel(name = "从业证书ID")
    @ApiModelProperty(value = "从业证书ID")
    private String professionalCertificateId;

    /**
     * 驾驶证书ID
     */

    @Excel(name = "驾驶证书ID")
    @ApiModelProperty(value = "驾驶证书ID")
    private String drivingCertificateId;

    /**
     * 身份证ID
     */

    @Excel(name = "身份证ID")
    @ApiModelProperty(value = "身份证ID")
    private String identityCardId;

    @Excel(name = "客户名称")
    @ApiModelProperty(value = "客户名称")
    @TableField(exist = false)
    private String custName;

    @Excel(name = "客户ID")
    @ApiModelProperty(value = "客户ID")
    private Long custId;


}
