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

import java.time.LocalDateTime;
import java.util.List;

import javax.validation.constraints.NotNull;

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;

/**
 * @author liuxinxin
 * @date 2022/10/11 上午10:25
 */
@Data
@ApiModel(description = "培训组织列表查询展示VO")
public class ResTrainingOrganizationListVO {

    @ApiModelProperty("培训组织id")
    private Long trainingOrganizationId;

    @ApiModelProperty("培训主题")
    private String trainingTopic;

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

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

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

    @ApiModelProperty("区域id")
    private Long regionId;

    @ApiModelProperty("区域名称")
    private String regionName;

    @ApiModelProperty("创建时间")
    private LocalDateTime createTime;

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

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

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

    /**
     * 是否可以设置考试时间
     */
    private Boolean canSetExamTime = Boolean.FALSE;

    /**
     * 考试试卷ID
     */
    private List<Long> examPaperId;

    /**
     * 考试试卷名称
     */
    private List<String> examPaperName;

    @ApiModelProperty("考试开始时间")
    private LocalDateTime examStartTime;

    @ApiModelProperty("考试结束时间")
    private LocalDateTime examEndTime;

}
