package com.ruoyi.drill.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.drill.domain.DrillPerson;
import com.ruoyi.drill.domain.DrillPic;
import com.ruoyi.drill.domain.DrillProcess;
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.util.Date;
import java.util.List;

/**
 * DrillPlanDto
 *
 * @Auther: matianxiang
 * @Date: 2023/08/08 16:38
 */
@Data
@ApiModel(value = "演习计划")
public class DrillPlanDto {
    private String id;
    /**
     * 演习名称
     */
    @NotBlank(message = "演习名称不能为空")
    @ApiModelProperty("演习名称")
    private String drillName;

    /**
     * 演习组织人
     */
    @NotNull(message = "演习组织人不能为空")
    @ApiModelProperty("演习组织人")
    private Long drillOrganizer;

    /**
     * 演习部门
     */
    @NotNull(message = "演习部门不能为空")
    @ApiModelProperty("演习部门")
    private Long drillDepartment;

    /**
     * 演习部门集合
     */
    @NotNull(message = "演习部门不能为空")
    @ApiModelProperty("演习部门集合")
    private List<String> drillDepartmentsList;

    /**
     * 演习区域
     */
    @NotBlank(message = "演习区域不能为空")
    @ApiModelProperty("演习区域")
    private String drillArea;

    /**
     * 演习地点
     */
    @NotBlank(message = "演习地点不能为空")
    @ApiModelProperty("演习地点")
    private String drillDeck;

    /**
     * 演习类型
     */
    @NotBlank(message = "演习类型不能为空")
    @ApiModelProperty("演习类型")
    private String drillType;

    /**
     * 事故类型及情况
     */
    @NotBlank(message = "事故类型及情况不能为空")
    @ApiModelProperty("事故类型及情况")
    private String accidentSituation;

    /**
     * 演习目的
     */
    @NotBlank(message = "演习目的不能为空")
    @ApiModelProperty("演习目的")
    private String drillObjective;

    /**
     * 计划开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @NotNull(message = "计划开始时间不能为空")
    @ApiModelProperty("计划开始时间")
    private Date planStartTime;

    /**
     * 计划结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @NotNull(message = "计划结束时间不能为空")
    @ApiModelProperty("计划结束时间")
    private Date planEndTime;

    /**
     * 演习过程确认项
     */
    private List<DrillProcess> drillProcessList;

    /**
     * 参加演习人员
     */
    private List<DrillPerson> drillPersonList;

    /**
     * 演习图片
     */
    private List<DrillPic> drillPicList;


}
