package com.aiotagro.cattletrade.business.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

@Data
public class WarningDetailDto implements Serializable {
    /**
     * 预警原因
     */
    private String warningReason;
    /**
     * 预警时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date warningTime;
    /**
     * 应行驶距离
     */
    private String expectedDistance;

    /**
     * 实际行驶距离
     */
    private String actualDistance;
    /**
     * 起始地
     */
    private String startLocation;
    /**
     * 起始纬度
     */
    private String startLat;
    /**
     * 起始经度
     */
    private String startLon;
    /**
     * 送达目的地
     */
    private String endLocation;
    /**
     * 目的地纬度
     */
    private String endLat;
    /**
     * 目的地经度
     */
    private String endLon;
    /**
     * 预计送达时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date estimatedDeliveryTime;
    /**
     * 司机姓名
     */
    private String driverName;
    /**
     * 司机手机号
     */
    private String driverMobile;
    /**
     * 车牌号
     */
    private String licensePlate;
    /**
     * 车头照片
     */
    private String carFrontPhoto;
    /**
     * 车尾照片
     */
    private String carBehindPhoto;
    /**
     * 车视频
     */
    private String carVideo;
    /**
     * 登记智能耳标数
     */
    private Integer registeredJbqCount;
    /**
     * 主机编号
     */
    private String serverDeviceSn;
    /**
     * 耳标编号集合
     */
    private List<String> jbqDeviceSn;
    /**
     * 核验人
     */
    private Integer checkBy;

    /**
     * 预警类型，2：数量盘点预警，3：距离盘点预警
     */
    private String warningType;

    /**
     * 车内盘点数量
     */
    private Integer inventoryJbqCount;
    
    /**
     * 预警位置纬度（从设备日志获取）
     */
    private String latitude;
    
    /**
     * 预警位置经度（从设备日志获取）
     */
    private String longitude;
    
    /**
     * 预警时设备温度（从设备日志获取）
     */
    private String deviceTemp;
    
    /**
     * 运单号
     */
    private String deliveryNumber;
    
    /**
     * 运单ID（用于查询设备列表和日志）
     */
    private Integer deliveryId;
    
    /**
     * 创建人姓名
     */
    private String createByName;
}
