package com.ningdatech.carapi.driver.model.po;

import com.ningdatech.carapi.common.constant.DriverLicenseTypeEnum;
import com.ningdatech.carapi.common.model.FileBasicInfo;
import com.ningdatech.carapi.driver.constant.TrainingRegistrationTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author liuxinxin
 * @date 2022/10/9 下午5:50
 */
@Data
@ApiModel(description = "驾驶员培训报名")
public class ReqDriverTrainingRegistrationPO {

    @ApiModelProperty("驾驶员id 驾驶员培训报名首次信息填入无需传入")
    private Long driverId;

    @ApiModelProperty(value = "培训报名类型", allowableValues = "FORENSIC_REGISTRATION 取证报名,JOB_APPLICATION 申请跳槽,REPLACEMENT_REGISTRATION 换证报名,CONTINUING_EDUCATION 继续教育")
    @NotNull(message = "培训报名类型不能为空")
    private TrainingRegistrationTypeEnum trainingRegistrationType;

    @ApiModelProperty("驾驶员姓名")
    @NotBlank(message = "驾驶员姓名不能为空")
    private String driverName;

    @ApiModelProperty("性别 0:女 ，1:男 ")
    @NotNull(message = "性别不能为空")
    private Integer gender;

    @ApiModelProperty("身份证号")
    @NotBlank(message = "身份证号不能为空")
    private String idCard;

    @ApiModelProperty("出生年月")
    @NotNull(message = "出生年月不能为空")
    private LocalDateTime birth;

    @ApiModelProperty("籍贯")
    @NotBlank(message = "籍贯不能为空")
    private String nativePlace;

    @ApiModelProperty("籍贯")
    @NotBlank(message = "籍贯编码")
    private String nativePlaceRegionCode;

    @ApiModelProperty(value = "免冠照图片文件")
    private FileBasicInfo avatarFile;

    @ApiModelProperty(value = "健康状况")
    private String health;

    @ApiModelProperty("手机号码")
    @NotBlank(message = "手机号码不能为空")
    private String phoneNo;

    @ApiModelProperty("住址")
    @NotBlank(message = "住址不能为空")
    private String address;

    @ApiModelProperty("驾驶员证号")
    private String driverLicenseNo;

    @ApiModelProperty(value = "驾驶证类型/准驾车型", allowableValues = "A1, A2, B1, B2, C1, OTHER")
    private DriverLicenseTypeEnum driverLicenseType;

    @ApiModelProperty("初次领证时间")
    @NotNull(message = "初次领证时间不能为空")
    private LocalDateTime initialLicenseTime;

    @ApiModelProperty("附件")
    private List<FileBasicInfo> appendixList;

    @ApiModelProperty("违规违法信息")
    private String illegalAndIllegalInfo;

    @ApiModelProperty(value = "驾驶员拟驾车型列表", allowableValues = "MIXER 搅拌车,PUMP_TRUCK 泵车,BULK_CEMENT_TRUCK 散装水泥车" +
            ",MORTAR_TRUCK 砂浆车,OTHER 其他")
    private List<String> motorcycleTypeList;

    @ApiModelProperty("培训报名id")
    private Long trainingRegistrationReviewId;

    @ApiModelProperty("驾驶员用户ID")
    private Long driverUserId;
}
