package com.aiotagro.cattletrade.business.entity;

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 java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 预警记录表
 * </p>
 *
 * @author admin
 * @since 2024-12-26
 */
@Getter
@Setter
@TableName("warning_log")
public class WarningLog implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 自增ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 运单ID
     */
    @TableField("delivery_id")
    private Integer deliveryId;

    /**
     * 预警类型, 1-正常 2-盘点预警 3-距离预警
     */
    @TableField("warning_type")
    private String warningType;

    /**
     * 车内盘点耳标数量
     */
    @TableField("inventory_jbq_count")
    private Integer inventoryJbqCount;

    /**
     * 应行驶距离
     */
    @TableField("expected_distance")
    private String expectedDistance;

    /**
     * 实际行驶距离
     */
    @TableField("actual_distance")
    private String actualDistance;

    /**
     * 预警时间
     */
    @TableField("warning_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date warningTime;

    /**
     * 预警位置纬度（停留预警、位置偏离预警使用）
     */
    @TableField("latitude")
    private String latitude;

    /**
     * 预警位置经度（停留预警、位置偏离预警使用）
     */
    @TableField("longitude")
    private String longitude;

    /**
     * 预警设备ID（温度预警等设备相关预警使用）
     */
    @TableField("device_id")
    private String deviceId;

    /**
     * 预警设备名称
     */
    @TableField("device_name")
    private String deviceName;

    /**
     * 预警时的温度值（温度预警使用）
     */
    @TableField("temperature")
    private Double temperature;

    /**
     * 预警详情描述
     */
    @TableField("warning_detail")
    private String warningDetail;

    /**
     * 预警类型描述（非数据库字段）
     */
    @TableField(exist = false)
    private String warningTypeDesc;


}
