package com.tuoheng.admin.request.inspection;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.tuoheng.common.core.exception.ServiceException;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.http.HttpStatus;

import java.util.Date;

@Data
public class UpdateTaskByCodeRequest {

    /**
     * 任务编码
     */
    private String taskCode;

    /**
     * 飞行设备
     */
    private String equipmentId;

    /**
     * 飞行设备
     */
    private String equipmentName;

    /**
     * 挂载设备(多选逗号","分隔)
     */
    private String equipmentMountId;

    /**
     * 挂载设备名称(多选逗号","分隔)
     */
    private String equipmentMountName;

    /**
     * 5G云盒ID
     */
    private String cloudBoxId;

    /**
     * 5G云盒名称
     */
    private String cloudBoxName;

    /**
     * 飞手(多选逗号","分隔)
     */
    private String flightHand;

    /**
     * 飞手名称(多选逗号","分隔)
     */
    private String flightHandName;

    /**
     * 任务状态：1任务待审核 5任务待飞行 10任务飞行中 15任务飞行完成(图片待审核) 20审核未通过
     * 25图片已审核(问题待分派) 30问题待处理 35问题处理中 40问题已处理(报告待生成) 45报告已生成
     */
    private Integer status;

    /**
     * 直播通道编码
     */
    private String channelCode;
    /**
     * 云盒SN号
     */
    private String boxSn;

    /**
     * 飞行开始时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date flightStartTime;

    /**
     * 飞行结束时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date flightEndTime;

    /**
     * 校验入参
     */
    public void checkParm() {
        if (this.status == null) {
            throw new ServiceException(HttpStatus.BAD_REQUEST.value(), "变量status不能为空");
        }
        if (this.getTaskCode() == null) {
            throw new ServiceException(HttpStatus.BAD_REQUEST.value(), "变量id不能为空");
        }
    }
}
