package com.ningdatech.carapi.driver.model;

import com.ningdatech.carapi.driver.constant.TrainingModeEnum;
import com.ningdatech.carapi.driver.constant.TrainingStatusEnum;
import com.ningdatech.carapi.driver.constant.TrainingTypeEnum;
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;

/**
 * @author liuxinxin
 * @date 2022/10/21 下午3:05
 */
@Data
@ApiModel("培训基础信息")
public class TrainingBasicInfo {

    @NotBlank(message = "培训主题不能为空")
    @ApiModelProperty("培训主题")
    private String trainingTopic;

    @ApiModelProperty("培训开始时间")
    private LocalDateTime trainingStartTime;

    @ApiModelProperty("培训结束时间")
    private LocalDateTime trainingEndTime;

    @ApiModelProperty("培训地点")
    private String address;

    /**
     * 培训模式 线上/线下
     * {@link TrainingModeEnum}
     */
    @NotNull(message = "培训模式不能为空")
    @ApiModelProperty(value = "培训模式 线上/线下", allowableValues = "online,offline")
    private TrainingModeEnum trainingMode;

    /**
     * 培训类型 取证培训/继续教育/换证培训/转码培训
     * {@link TrainingTypeEnum}
     */
    @NotNull(message = "培训类型不能为空")
    @ApiModelProperty(value = "培训类型 取证培训/继续教育/换证培训/转码培训", allowableValues = "forensic_registration_training 取证报名,replacement_registration_training 换证报名 ,continuing_education_training 继续教育,transcoding_training 转码培训")
    private TrainingTypeEnum trainingType;

    @NotBlank(message = "联系人不能为空")
    @ApiModelProperty("联系人")
    private String contacts;

    /**
     * 联系电话
     */
    @NotBlank(message = "联系电话不能为空")
    @ApiModelProperty("联系电话")
    private String contactNumber;

    /**
     * 培训状态 启用/禁用
     * {@link TrainingStatusEnum}
     */
    @NotNull(message = "培训状态不能为空")
    @ApiModelProperty(value = "培训状态", allowableValues = "enable 启用,disable 禁用")
    private TrainingStatusEnum trainingStatus;

    /**
     * 备注
     */
    @NotBlank(message = "备注不能为空")
    @ApiModelProperty("备注")
    private String remark;

}
