package com.ozs.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ozs.common.annotation.Excel;
import com.ozs.common.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

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

/**
 * <p>
 * 相机台账管理表
 * </p>
 *
 * @author ozs
 * @since 2023-02-17
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class BaseCameraManagement extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 相机编码
     */
    @Excel(name = "相机编码")
    private String cameraCode;

    /**
     * 线路编码
     */
    private String railwayCode;

    /**
     * 通道编号
     */
    @Excel(name = "通道编号")
    private String channel;

    /**
     * 所属分公司编码(单位id)
     */
    private Long deptId;


    @Excel(name = "测点名称")
    private  String  stationName;


    /**
     * 行别(1上行2下行）
     */
    @Excel(name = "行别", readConverterExp = "1=上行,2=下行")
    private Integer lineDir;

    /**
     * 监控相机安装里程位置
     */
    private Integer installMile;
    @TableField(exist = false)
    private BigDecimal installMileBD;

    /**
     * 监控范围开始里程位置
     */
    private Integer beginMile;
    @TableField(exist = false)
    private BigDecimal beginMileBD;

    /**
     * 监控范围结束里程位置
     */
    private Integer endMile;
    @TableField(exist = false)
    private BigDecimal endMileBD;

    /**
     * 监视相机经度
     */
    @Excel(name = "监视相机经度")
    private String installLongitude;

    /**
     * 监视相机纬度
     */
    @Excel(name = "监视相机纬度")
    private String installLatitude;

    /**
     * 录像接口返回的任务ID
     */
//    @Excel(name = "监视相机纬度")
    private String taskId;

    /**
     * 监控相机安装里程位置字符串形式
     */
    @TableField(exist = false)
    @Excel(name = "监控相机安装里程位置")
    private String installMiles;

    /**
     * 监控范围开始里程位置字符串形式
     */
    @TableField(exist = false)
    @Excel(name = "监控范围开始里程位置")
    private String beginMiles;

    /**
     * 监控范围结束里程位置字符串形式
     */
    @TableField(exist = false)
    @Excel(name = "监控范围结束里程位置")
    private String endMiles;

    /**
     * 里程范围
     */
    @TableField(exist = false)
    private String milesRange;

    /**
     * 经纬度
     */
    @TableField(exist = false)
    private String longitudeAndLatitude;

    /**
     * 线路名称
     */
    @TableField(exist = false)
    @Excel(name = "线路名称")
    private String railwayName;

    /**
     * 监视方向(1上行2下行3双线)
     */
    private Integer monitoringDirection;

    /**
     * 监视方向名称(1上行2下行3双线)
     */
    @Excel(name = "监视方向")
    @TableField(exist = false)
    private String monitoringDirectionName;

    /**
     * 所属工务段名称
     */
    @TableField(exist = false)
    private String deptName;

    /**
     * 行别 字符串
     */
    @TableField(exist = false)
    private String lineDirStr;

    /**
     * 是否开启录像(1开启2不开启)
     */
    private Integer startRecording;

    /**
     * 是否显示启用录像按钮(1显示2不显示)
     */
    @TableField(exist = false)
    private Integer isStartRecording;

    /**
     * 是否在线 1.离线 2.在线
     */
    private Integer online;

    /**
     * 是否在线 1.离线 2.在线
     */
    @TableField(exist = false)
    private String onlineName;

    /**
     * 视频url
     */
    private String url;
    /**
     * 相机是否启用 1启用，2弃用
     */
    private Integer enableOrNot;

    /**
     * 相机是否启用 1启用，2弃用
     */
    @TableField(exist = false)
    @Excel(name = "相机状态")
    private String enableOrNotName;

    private String rtspUrl;

    /**
     * 分组
     */
    @Excel(name = "分组")
    private String grou;
    /**
     * 排序
     */
    @Excel(name = "排序")
    private String sort;
    /**
     * 显卡的使用(为了充分使用正式服务器的四张显卡)
     */
    @Excel(name = "显卡")
    private String graphicsCard;
    /**
     * 车号
     */
    private String trainNum;

    /**
     * AB节
     */
    private String abSection;
}