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 lombok.Data;
import lombok.EqualsAndHashCode;

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

/**
 * IoT设备数据实体
 *
 * @author System
 * @date 2025-01-16
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("iot_device_data")
public class IotDeviceData {

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

    /**
     * 设备ID
     */
    private String deviceId;

    /**
     * 设备类型：1-主机，2-耳标，4-项圈
     */
    private Integer deviceType;

    /**
     * 设备名称
     */
    private String deviceName;

    /**
     * 电压值
     */
    private BigDecimal voltage;

    /**
     * 电量百分比
     */
    private Integer batteryPercentage;

    /**
     * 温度
     */
    private BigDecimal temperature;

    /**
     * 步数
     */
    private Long steps;

    /**
     * 信号强度
     */
    private String signalStrength;

    /**
     * RSRP信号强度
     */
    private String rsrp;

    /**
     * GPS状态
     */
    private String gpsState;

    /**
     * 纬度
     */
    private String latitude;

    /**
     * 经度
     */
    private String longitude;

    /**
     * 海拔
     */
    private String altitude;

    /**
     * 当日步数
     */
    private Integer sameDaySteps;

    /**
     * 设备状态
     */
    private Integer status;

    /**
     * 设备版本
     */
    private String version;

    /**
     * 更新时间
     */
    private LocalDateTime uptime;

    /**
     * 机构ID
     */
    private String organId;

    /**
     * 车牌号
     */
    private String carNumber;

    /**
     * 装车订单ID，关联delivery表主键
     */
    private Integer deliveryId;

    /**
     * 租户ID，关联sys_tenant表主键
     */
    private Integer tenantId;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
    
    /**
     * 设备重量（动物重量）
     */
    @TableField("weight")
    private Double weight;
    
    /**
     * 逻辑删除标志：0-正常，1-已删除（设备已换绑到其他项目）
     */
    @TableField("is_delet")
    private Integer isDelet;
}
