package com.ningdatech.carapi.driver.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ningdatech.carapi.common.base.BaseEntity;
import com.ningdatech.carapi.common.constant.BgTypeEnum;
import com.ningdatech.carapi.driver.constant.DriverAbnormalBehaviorOverseeEnum;
import com.ningdatech.carapi.driver.constant.DriverAbnormalBehaviorProcessingEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

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

/**
 * @author CMM
 * @Description
 * @Date 2022/11/6 20:59
 */
@TableName("nd_driver_abnormal_behavior_analysis")
@Data
@ApiModel(value = "DriverAbnormalBehaviorAnalysis",description = "驾驶员行为分析")
@NoArgsConstructor
@AllArgsConstructor
public class DriverAbnormalBehaviorAnalysis extends BaseEntity implements Serializable {
    private static final long serialVersionUID = 4998442662608188657L;

    @ApiModelProperty("告警事件id")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty("公司ID")
    private Long companyId;

    @ApiModelProperty("公司名")
    private String companyName;

    @ApiModelProperty("区域ID")
    private Long regionId;

    @ApiModelProperty("区域名")
    private String regionName;

    @ApiModelProperty("车牌号")
    private String carPlate;

    @ApiModelProperty("驾驶员ID")
    private Long driverId;

    @ApiModelProperty("驾驶员姓名")
    private String driverName;

    /**
     * {@link BgTypeEnum}
     */
    @ApiModelProperty("告警类型")
    private Integer alarmType;

    @ApiModelProperty(value = "告警级别",allowableValues = "1 预警,2 报警")
    private Integer alarmLevel;

    @ApiModelProperty("告警级别名称")
    private String alarmLevelName;

    @ApiModelProperty("车辆速度")
    private Integer speed;

    @ApiModelProperty("告警时间")
    private LocalDateTime alarmTime;

    @ApiModelProperty("告警地点")
    private String alarmAddress;

    @ApiModelProperty("告警图片附件")
    private String alarmPictureAppendix;

    @ApiModelProperty("告警视频附件")
    private String alarmVideoAppendix;

    /**
     * {@link DriverAbnormalBehaviorProcessingEnum}
     */
    @ApiModelProperty(value = "处理状态",allowableValues = "0 待处理,1 已处理")
    private Integer processingStatus;

    /**
     * {@link DriverAbnormalBehaviorOverseeEnum}
     */
    @ApiModelProperty(value = "处理状态",allowableValues = "0 待督办,1 已督办")
    private Integer overseeStatus;

    @ApiModelProperty("处理方式")
    private String processingMode;

    @ApiModelProperty("处理描述")
    private String processingDescription;

    @ApiModelProperty("处理用户")
    private String processingUser;

    @ApiModelProperty("处理时间")
    private LocalDateTime processingTime;

    @ApiModelProperty("地址信息")
    private String addressInfo;

    @ApiModelProperty("供应商数据关联id")
    private Integer supplierDataId;

    @ApiModelProperty("告警类型名称")
    private String alarmTypeName;

    @ApiModelProperty("供应商报警唯一序号")
    private Long alarmMsgSn;

    @ApiModelProperty("平台ID")
    private Long gnssCenterId;

    @ApiModelProperty("告警GPS高度")
    private BigDecimal altitude;

    @ApiModelProperty("告警GPS经度")
    private BigDecimal longitude;

    @ApiModelProperty("告警GPS纬度")
    private BigDecimal latitude;

    @ApiModelProperty("督办处理结果")
    private String overseeResult;

    @ApiModelProperty("督办时间")
    private LocalDateTime overseeTime;

}
