package com.djhk.uav.airspace.domain;


import com.djhk.common.annotation.Excel;
import com.djhk.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 无人机信息维护实体 uav_info
 *
 * @author jiachengshuai
 * @date 2022-08-25
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UavInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 无人机信息表主键 */
    private Long id;

    /** 企业id */
    private Long deptId;

    /** 企业名称 */
    private String deptName;

    /** 无人机编号 */
    @Excel(name = "无人机编号")
    private String uavNum;

    /** 无人机子编号 */
    private String childUavNum;

    /** 无人机名称 */
    @Excel(name = "无人机名称")
    private String uavName;

    /** 机号 */
    @Excel(name = "无人机机号")
    private String machineNum;

    /** 机型 */
    @Excel(name = "机型")
    private String uavType;

    /** 机型名称 */
    private String uavTypeName;

    /** 子类型 */
    private Integer subType;

    /** 装载方式 */
    private Integer loadMode;

    /*domain 表示一个领域，作为一个命名空间，暂时分为：
    飞机类-0
    负载类-1
    遥控器类-2
    机场类-3*/
    private Integer domain;

    /** 来源 */
    private Integer origin;

    /** 机型简介 */
    @Excel(name = "机型简介")
    private String briefIntroduction;

    /** 图片路径 */
//    @Excel(name = "图片路径")
    private String picture;

    /** 动态模型（文件表id） */
//    @Excel(name = "动态模型", readConverterExp = "文=件表id")
    private String dynamicModel;

    /** 静态模型（文件表id） */
//    @Excel(name = "静态模型", readConverterExp = "文=件表id")
    private String staticModel;

    /** 状态（待定） */
//    @Excel(name = "状态", readConverterExp = "待=定")
    private String uavStatus;

    /** 健康状态 */
    private String healthStatus;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 最大起飞总量 */
    private String mtow;

    /** 最大可承受风速 */
    private String maxWindSpeed;

    /** 续航时间 */
    private String endurance;

    /** 最大飞行高度 */
    private String ceiling;

    /** 最大续航里程 */
    private String mileage;

    /** appId */
    private String appId;

    /** 操作方式  0 在库  1 出库 */
    private Integer operationMode;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date loginTime;


    private List<Long> loadIdList;


    private String loadId;

    /** 无人机能力 */

    private String abilityName;

    /** 无人机能力集合 */

    private List<String> abilityNames;

 
    private Long flightPlanId;

    /** 负载名称（多个已，隔开） */
 
    private String loadName;

    /** 无人机能力集合 */
 
    private List<String> loadNames;

 
    private String pictureURL;

 
    private Map<String,String> pictureMap;

    /** 动态模型（文件表id） */
 
    private Map<String,String> dynamicModelMap;

    /** 静态模型（文件表id） */
 
    private Map<String,String> staticModelMap;

 
    private List<UavInfo> child;

    /** 无人机上线状态 */
 
    private Integer onlineStatus;

    /** 无人机机型名称 */
 
    private String deviceName;


    /** 经度 */
 
    private Double longitude;

    /** 纬度 */
 
    private Double latitude;

    /** 计划名称 */
 
    private String flightPlanName;


 
    private String flightPlanNo;


 
    private Long orgId;

    private Long createById;

 
    private List<Integer> domains;

    @Excel(name = "固件版本号")
    private String firmwareVersion;


 
    private Integer parentDomain;

    /** 起飞点经度 */
    private Double takeOffLongitude;

    /** 起飞点纬度 */
    private Double takeOffLatitude;

    /** 起飞点海拔高度 */
    private Double takeOffHeight;

}
