package com.tuoheng.admin.entity.domain;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.tuoheng.admin.enums.MarkTypeEnum;
import com.tuoheng.admin.enums.UpdateOrCreateEnum;
import com.tuoheng.common.common.BaseEntity;
import com.tuoheng.system.utils.ShiroUtils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * ThMission
 *
 * @author qiujinyang
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("th_mission")
public class ThMission extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    public ThMission(int type){
        if(type== UpdateOrCreateEnum.CREATE.getCode()){
            setCreateTime(new Date());
            setMark(MarkTypeEnum.VALID.getCode());
        }
        setUpdateTime(new Date());
    }

    /**
     * 巡检任务编号
     */
    private String code;

    /**
     * 巡检任务名称
     */
    private String name;

    /**
     * 任务类型：1：巡检任务 2：应急任务
     */
    private Integer type;

    /**
     * 巡检方式  1 机场服务，2 人工巡检
     */
    private Integer inspectionType;

    /**
     * 巡检机场
     */
    private Integer airportId;

    /**
     * 巡检线路
     */
    private Integer inspectionLine;

    /**
     *  巡检机场名称
     */
    private String airportName;

    /**
     *  巡检线路名称
     */
    private String inspectionLineName;

    /**
     *  飞机Id
     */
    private Integer droneId;

    /**
     *  飞机名称
     */
    private String droneName;

    /**
     *  巡检里程
     */
    private String mileage;

    /**
     * 任务状态：1任务待飞行 2任务飞行中 3任务执行失败 4任务飞行完成
     */
    private Integer status;

    /**
     * 视频推流地址
     */
    private String pushUrl;

    /**
     * 视频拉流地址
     */
    private String pullUrl;

    /**
     * AI拉流地址
     */
    private String aipullUrl;

    /**
     * AI推流地址
     */
    private String aipushUrl;

    /**
     * 播放播放地址
     */
    private String playUrl;

    /**
     * AI播放地址
     */
    private String aiplayUrl;

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

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


    /**
     * 原视频地址
     */
    private String videoUrl;

    /**
     * AI识别后视频地址
     */
    private String aiVideoUrl;

    /**
     * AI处理状态
     */
    private Integer analyseStatus;

    /**
     * 算法分析进度
     */
    private Double progressbar;

    /**
     * 执行状态，1：未执行，2：已执行
     */
    private Integer executionStatus;

    /**
     * 备注
     */
    private String note;

    /**
     * 巡检报告是否生成 是否生成 0 未生成 1 需修改  2 已生成
     */
    private Integer reportStatus;

    /**
     * 天气信息
     */
    private String weather;

    /**
     * 租户id
     */
    private Integer tenantId;

    /**
     * DSP交互ID
     */
    private String requestId;

    /**
     * 应急任务关联数据任务ID
     */
    private Integer emergencyDataMissionId;

}