package com.yc.ship.module.resource.controller.admin.driver.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.yc.ship.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

@Schema(description = "管理后台 - 驾驶员管理 Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ExcelIgnoreUnannotated
public class DriverRespVO extends PageParam {

    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23665")
    @ExcelProperty("主键ID")
    private String id;

    @Schema(description = "驾驶员姓名", example = "张三")
    @ExcelProperty("驾驶员姓名")
    private String name;

    @Schema(description = "驾驶员编号")
    @ExcelProperty("驾驶员编号")
    private String driverCode;
    @Schema(description = "微信号")
    @ExcelProperty("微信号")
    private String wxNo;

    @Schema(description = "驾驶员分组")
    @ExcelProperty("驾驶员分组")
    private String groupId;

    @Schema(description = "身份证号")
    @ExcelProperty("身份证号")
    private String idCard;

    @Schema(description = "性别")
    @ExcelProperty("性别")
    private Integer sex;

    @Schema(description = "生日")
    @ExcelProperty("生日")
    private LocalDateTime birthday;

    @Schema(description = "联系电话")
    @ExcelProperty("联系电话")
    private String phone;

    @Schema(description = "准驾车型")
    @ExcelProperty("准驾车型")
    private Integer driverLevel;

    @Schema(description = "驾驶员类型", example = "1")
    @ExcelProperty("驾驶员类型")
    private Integer driverType;

    @Schema(description = "学历", example = "2")
    @ExcelProperty("学历")
    private Integer eduType;

    @Schema(description = "民族")
    @ExcelProperty("民族")
    private Integer nation;

    @Schema(description = "联系地址")
    @ExcelProperty("联系地址")
    private String address;

    @Schema(description = "紧急联系电话")
    @ExcelProperty("紧急联系电话")
    private String emergentPhone;

    @Schema(description = "启用状态", example = "1")
    @ExcelProperty("启用状态")
    private Integer useStatus;

    @Schema(description = "标签")
    @ExcelProperty("标签")
    private String driverTag;

    @Schema(description = "驾驶员头像")
    @ExcelProperty("驾驶员头像")
    private String portraitUrl;

    @Schema(description = "驾照正面")
    @ExcelProperty("驾照正面")
    private String driverCardImgUrl1;

    @Schema(description = "驾照副页")
    @ExcelProperty("驾照副页")
    private String driverCardImgUrl2;

    @Schema(description = "身份证证件号正面")
    @ExcelProperty("身份证证件号正面")
    private String idCardImgUrl1;

    @Schema(description = "身份证证件号背面")
    @ExcelProperty("身份证证件号背面")
    private String idCardImgUrl2;

    @Schema(description = "初次领证日期")
    @ExcelProperty("初次领证日期")
    private LocalDateTime firstIssuedate;

    @Schema(description = "审验到期日期")
    @ExcelProperty("审验到期日期")
    private LocalDateTime annualPeriod;

    @Schema(description = "创建时间")
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    @Schema(description = "更新时间")
    @ExcelProperty("更新时间")
    private LocalDateTime updateTime;

    @Schema(description = "供应商类型", example = "1")
    @ExcelProperty("供应商类型")
    private Integer supplierType;

    @Schema(description = "所属供应商id")
    @ExcelProperty("所属供应商id")
    private String companyId;

    @Schema(description = "备注")
    @ExcelProperty("备注")
    private String remark;

    @Schema(description = "排序")
    @ExcelProperty("排序")
    private Integer sort;

    @Schema(description = "驾驶员默认关联的车ID")
    private String carId;

    @Schema(description = "驾驶员默认关联的车牌号")
    private String carNo;

}
