package com.tuoheng.admin.entity.request;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.tuoheng.common.common.BaseQuery;
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.io.Serializable;
import java.util.Date;

/**
 * 巡检任务 新增或修改请求参数
 * @author: qiujinyang
 * @date: 2021/9/7
 */
@Data
public class MissionRequest  implements Serializable {

    private static final long serialVersionUID = 1L;

    private Integer id;

    /**
     * 巡检任务名称
     */
    @NotNull(message = "任务名称不能为空！")
    @ApiModelProperty(value = "任务名称")
    private String name;


    /**
     * 巡检方式  1 机场服务，2 人工巡检
     */
    @NotNull(message = "巡检方式不能为空！")
    @ApiModelProperty(value = "巡检方式  1 机场服务，2 人工巡检")
    private Integer inspectionType;

    /**
     *  巡检机场
     */
    @NotNull(message = "巡检机场不能为空！")
    @ApiModelProperty(value = "巡检机场")
    private Integer airportId;

    /**
     *  巡检机场名称
     */
    @NotNull(message = "巡检机场名称不能为空！")
    @ApiModelProperty(value = "巡检机场名称")
    private String airportName;

    /**
     *  巡检线路
     */
    @NotNull(message = "巡检线路不能为空！")
    @ApiModelProperty(value = "巡检线路")
    private Integer inspectionLine;

    /**
     *  巡检线路名称
     */
    @NotNull(message = "巡检线路名称不能为空！")
    @ApiModelProperty(value = "巡检线路名称")
    private String inspectionLineName;

    /**
     *  飞机Id
     */
    @ApiModelProperty(value = "飞机Id")
    private Integer droneId;

    /**
     *  飞机名称
     */
    @ApiModelProperty(value = "飞机名称")
    private String droneName;

    /**
     * 巡检任务类型 1 日常，2 应急巡检
     */
    @NotNull(message = "任务类型不能为空！")
    @ApiModelProperty(value = "任务类型，1 日常，2 应急巡检")
    private Integer type;

    /**
     * 执行开始时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "巡检时间")
    @NotNull(message = "巡检时间不能为空！")
    private Date executionStartTime;

    /**
     * 执行结束时间，飞行结束的时候才会填充的时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "巡检结束时间")
    private Date executionEndTime;


    @ApiModelProperty(value = "任务飞行状态：1任务待飞行 2任务飞行中 3任务执行失败 4任务飞行完成")
    private Integer status;


    @ApiModelProperty(value = "备注")
    private String note;


    @ApiModelProperty(value = "租户id",hidden = true)
    private Integer tenantId;

}
