package com.multictrl.modules.business.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.multictrl.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * 航线信息表
 *
 * @author Sdy
 * @since 1.0.0 2026-04-20
 */
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("bus_route")
public class RouteEntity extends BaseEntity {

    /**
     * 航线名称
     */
    private String routeName;
    /**
     * 航线类型
     */
    private String templateType;
    /**
     * 高度模式
     */
    private String heightModel;
    /**
     * 飞行速度
     */
    private Double flightSpeed;
    /**
     * 飞行高度
     */
    private Double flightHeight;
    /**
     * 返航高度
     */
    private Double globalRthHeight;
    /**
     * 安全起飞高度
     */
    private Double takeoffSecurityHeight;
    /**
     * 结束动作
     */
    private String finishAction;
    /**
     * 失控操作
     */
    private String exitOnRcLost;
    /**
     * 失控动作
     */
    private String executeRcLostAction;
    /**
     * 全局航线过渡速度
     */
    private Double globalTransitionalSpeed;
    /**
     * 飞向首航点模式
     */
    private String flyToWaylineMode;
    /**
     * 机库SN码
     */
    private String dockSn;
    /**
     * 所属部门
     */
    private Long deptId;
    /**
     * 图片地址
     */
    private String imgUrl;
    /**
     * kmz地址
     */
    private String kmzUrl;
    /**
     * Q20航线ID（Q20设备上报的wayline ID）
     */
    private String q20RouteId;
    /**
     * 航点个数
     */
    private Integer waypointNum;
    /**
     * 总距离
     */
    private Double totalDistance;
    /**
     * 预计飞行时长
     */
    private String expectFlightTime;
    /**
     * 是否精准导入
     */
    private Boolean isAccurateImport;
    /**
     * 删除标志
     */
    @TableLogic
    private Integer delFlag;

    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updater;

    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateDate;
}