package com.djhk.uav.uav.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.djhk.common.api.domain.TaskFlightPlanMedia;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

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

/**
 * 无人机姿态对象 uav_pose
 *
 * @author jiachengshuai
 * @date 2022-09-28
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "uav_pose")
public class UavPose
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    @TableId(value = "id",type = IdType.AUTO)
    private Long id;

    /** 无人机编号 */
    private String uavNum;

    /** GPS时刻 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date gpsTime;

    /** 电脑时刻 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date uavTime;

    /** GPS卫星数 */
    private Integer gpsNum;

    /** GPS锁定状态 */
    private String gpsLock;

    /** 搜寻状态 */
    private String gpsSearch;

    /** 电源电压 */
    private String power;

    /** 经度 */
    private Double lng;

    /** 维度 */
    private Double lat;

    /** 高度 */
    private Double height;

    /** 导航下一点 */
    private Long nextPoint;

    /** 低俗 */
    private Double gs;

    /** 空速 */
    private Double tas;

    /** 飞行距离 */
    private Double distance;

    /** 航向 */
    private Long hdg;

    /** 目标经度 */
    private String tgtLng;

    /** 目标维度 */
    private String tgtLat;

    /** 目标高度 */
    private String tgtHight;

    /** 目标距离估距 */
    private String slantR;

    /** 飞机俯仰 */
    private String uavPitch;

    /** 飞机偏航 */
    private String uavYaw;

    /** 飞机滚转 */
    private String uavRoll;

    /** 航向欧拉角 */
    private String pan;

    /** 俯仰欧拉角 */
    private String tilt;

    /** 滚转框架角 */
    private String roll;

    /** 航向框架角 */
    private String framepan;

    /** 俯仰框架角 */
    private String frameTilt;

    /** 滚转框架角 */
    private String frameRoll;

    /** 可见光视场角 */
    private String viewAngle;

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

    private Integer origin;

    /** 飞行计划编号 */
    private String flightPlanNo;

    private Double velocityX;   // 南北方向的速度，向北为正，向南为负

    private Double velocityY;  // 东西方向的速度，向东为正，向西为负

    private Double velocityZ;  // 垂直的速度，向上为正，向下为负

    /** 创建者 */
    private String createBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 更新者 */
    private String updateBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /** 删除者 */
    private String deleteBy;

    /** 删除时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date deleteTime;

    /** 备注 */
    @TableField(exist = false)
    private String remark;


    /** 海拔高度 */
    private Double asl;

    @TableField(exist = false)
    private String tableMonth;

    @TableField(exist = false)
    private String endTime;

    @TableField(exist = false)
    private List<TaskFlightPlanMedia> flightPlanMedias;

    @TableField(exist = false)
    private Long uavInfoId;

    @TableField(exist = false)
    private String uavTypeName;

}
