package com.base.biz.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 目标信息表
 * </p>
 *
 * @author cxl
 * @since 2022-02-24
 */
@ApiModel("目标实体类")
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("scene_basis_target")
public class SceneBasisTarget implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @ApiModelProperty("id")
    @TableId(value = "id", type = IdType.AUTO)
    private String id;

    /**
     * 目标编码
     */
    @ApiModelProperty("目标编码")
    private String targetCode;

    /**
     * 目标级别，0保留，1关键，2重要，3一般（民用），4临时，5其他
     */
    @ApiModelProperty("目标级别")
    private Integer targetLevel;

    /**
     * 目标状态，0启动，1禁用
     */
    @ApiModelProperty("目标状态")
    private Integer targetState;

    /**
     * 目标名称
     */
    @ApiModelProperty("目标名称")
    private String targetName;

    /**
     * 国家/地区
     */
    @ApiModelProperty("国家/地区")
    private String countryName;

    /**
     * 目标类型，0固定目标，1移动目标，2区域目标
     */
    @ApiModelProperty("目标类型")
    private Integer type;

    /**
     * 区域点顺序走向，0顺时针，1逆时针
     */
    @ApiModelProperty("区域点顺序走向")
    private Integer pointDirection;

    /**
     * 区域点数量，不包括中心点
     */
    @ApiModelProperty("区域点数量")
    private Integer pointCount;

    /**
     * 运动状态，0固定，1移动，2较低速移动（0-20），3低速移动（20-40），4正常速度（40-60），5高速运动（60-80），单位lm/h
     */
    @ApiModelProperty("运动状态")
    private BigDecimal movingStatus;

    /**
     * 动目标平均航速，单位节，1节=1海里/小时=1.852km/h
     */
    @ApiModelProperty("动目标平均航速")
    private BigDecimal movingEvgSpeed;

    /**
     * 动目标最大航速，单位节，1节=1海里/小时=1.852km/h
     */
    @ApiModelProperty("动目标最大航速")
    private BigDecimal movingMaxSpeed;

    /**
     * 偏好卫星，外键satellite_id，多个用逗号分隔
     */
    @ApiModelProperty("偏好卫星")
    private String satelliteSelected;

    /**
     * 偏好接收站，外键station_id，多个逗号分隔
     */
    @ApiModelProperty("偏好接收站")
    private String stationSelected;

    /**
     * 是否存在几何特性
     */
    @ApiModelProperty("是否存在几何特性")
    private BigDecimal hasCustomFeature;

    /**
     * 是否存在电子特性
     */
    @ApiModelProperty("是否存在电子特性")
    private BigDecimal hasElectronicFeature;

    /**
     * 是否存在光学特性
     */
    @ApiModelProperty("是否存在光学特性")
    private BigDecimal hasOpticsFeature;

    /**
     * 是否存在雷达特性
     */
    @ApiModelProperty("是否存在雷达特性")
    private BigDecimal hasRadarFeature;

    /**
     * 是否存在运动特性
     */
    @ApiModelProperty("是否存在运动特性")
    private BigDecimal hasMotionFeature;

    /**
     * 历史拍摄次数
     */
    @ApiModelProperty("历史拍摄次数")
    private BigDecimal times;

    /**
     * 优先级，1-100为高优先，101及以上为普通优先
     */
    @ApiModelProperty("优先级")
    private Integer priority;

    /**
     * 地表属性，0海洋，1沙漠，2森林，3冰雪
     */
    @ApiModelProperty("地表属性")
    private Integer targetType;

    /**
     * 优选策略，0时间优先，1质量优先
     */
    @ApiModelProperty("优选策略")
    private BigDecimal firstProperty;

    @ApiModelProperty("unit")
    private String unit;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private Date createdDate;

    /**
     * 创建人
     */
    @ApiModelProperty("创建人")
    private String createdBy;

    /**
     * 最后修改人
     */
    @ApiModelProperty("最后修改人")
    private String lastModifiedBy;

    /**
     * 最后修改时间
     */
    @ApiModelProperty("最后修改时间")
    private Date lastModifiedDate;

    @ApiModelProperty("数据来源0，初始导入；1，页面新增")
    private Integer source;

}
