package com.yuchen.saas.park.api.dto.fire.inspect.plan;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @author zhouhanwei
 * @create 2024/4/9 11:38
 */
@Data
public class AddTemporaryTaskReqDTO {

    /**
     * 项目id
     */
    @ApiModelProperty(name = "projectId", value = "项目id")
    @NotNull(message = "请选择项目")
    private Long projectId;
    /**
     * 业务id
     */
    @ApiModelProperty(name = "businessId", value = "业务id")
    private Long businessId;
    /**
     * 业务名称
     */
    @ApiModelProperty(name = "businessName", value = "业务名称")
    private String businessName;
    /**
     * 巡检类型id
     */
    @ApiModelProperty(name = "inspectTypeId", value = "巡检类型id")
    @NotNull(message = "请选择巡检类型")
    private Long inspectTypeId;
    /**
     * 任务名称
     */
    @ApiModelProperty(name = "inspectTaskName", value = "任务名称")
    @NotBlank(message = "任务名称不能为空")
    private String inspectTaskName;
    /**
     * 任务日期
     */
    @ApiModelProperty(name = "taskDate", value = "任务日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @NotNull(message = "任务日期不能为空")
    private Date taskDate;

    /**
     * 巡检人列表
     */
    @ApiModelProperty(name = "orgUserIdList", value = "巡检人列表")
    private List<Long> orgUserIdList = new ArrayList<>();

    /**
     * 巡检点配置列表
     */
    @ApiModelProperty(name = "planConfigDTOList", value = "巡检点配置列表")
    @NotNull(message = "巡检点配置不能为空")
    private List<FireInspectPlanConfigDTO> planConfigDTOList;
    /**
     * 时间段
     */
    @ApiModelProperty(name = "planTimePeriodValueDTO", value = "时间段列表")
    @NotNull(message = "时间段数据不能为空")
    private PlanTimePeriodValueDTO planTimePeriodValueDTO;
    /**
     * 任务开始通知模式（0：不开通，1：开通）
     */
    @ApiModelProperty(name = "taskStartNotifyDemand", value = "任务开始通知模式（0：不开通，1：开通）")
    private String taskStartNotifyDemand;
    /**
     * 任务开始前多久通知
     */
    @ApiModelProperty(name = "taskStartNotify", value = "任务开始前多久通知")
    private Integer taskStartNotify;
    /**
     * 任务开始前通知类型（1：分钟，2：小时，3：天）
     */
    @ApiModelProperty(name = "taskStartNotifyType", value = "任务开始前通知类型（1：分钟，2：小时，3：天）")
    private String taskStartNotifyType;
    /**
     * 任务到期模式（0：不开通，1：开通）
     */
    @ApiModelProperty(name = "taskEndNotifyDemand", value = "任务到期模式（0：不开通，1：开通）")
    private String taskEndNotifyDemand;
    /**
     * 任务过期期限
     */
    @ApiModelProperty(name = "taskEndNotify", value = "任务过期期限")
    private Integer taskEndNotify;
    /**
     * 任务到期时间类型（1：分钟，2：小时，3：天）
     */
    @ApiModelProperty(name = "taskEndNotifyType", value = "任务到期时间类型（1：分钟，2：小时，3：天）")
    private String taskEndNotifyType;
    /**
     * 任务执行类型（1：单人模式，2：多人模式）
     */
    @ApiModelProperty(name = "taskExecuteType", value = "任务执行类型（1：单人模式，2：多人模式）")
    private String taskExecuteType;
    /**
     * 逾期任务自动关闭（0：否，1：是）
     */
    @ApiModelProperty(name = "taskAutoCloseDemand", value = "逾期任务自动关闭（0：否，1：是）")
    private String taskAutoCloseDemand;
    /**
     * 逾期任务不允许巡检（0：否，1：是）
     */
    @ApiModelProperty(name = "taskOutAllowDemand", value = "逾期任务不允许巡检（0：否，1：是）")
    private String taskOutAllowDemand;
    /**
     * 顺序巡检（0：否，1：是）
     */
    @ApiModelProperty(name = "taskSequenceDemand", value = "顺序巡检（0：否，1：是）")
    private String taskSequenceDemand;
    /**
     * 允许从相册选择照片（0：否，1：是）
     */
    @ApiModelProperty(name = "taskPhotoDemand", value = "允许从相册选择照片（0：否，1：是）")
    private String taskPhotoDemand;
    /**
     * 备注
     */
    @ApiModelProperty(name = "remark", value = "备注")
    private String remark;


}
