package com.rj.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 心跳日志表
 * </p>
 *
 * @author Auto Generated
 * @since 2025-01-01
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("yhy_heartbeat_log")
@Schema(description = "心跳日志表")
public class YhyHeartbeatLog implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "主键，UUID")
    @TableId("id")
    private String id;

    @Schema(description = "数据类型，固定值：HeartbeatLog")
    @TableField("data_type")
    private String dataType;

    @Schema(description = "时间戳")
    @TableField("time_stamp")
    private LocalDateTime timeStamp;

    @Schema(description = "设备号")
    @TableField("device_no")
    private String deviceNo;

    @Schema(description = "设备状态（如：Online）")
    @TableField("device_status")
    private String deviceStatus;

    @Schema(description = "电源状态（0-关闭，1-开启）")
    @TableField("power_status")
    private Boolean powerStatus;

    @Schema(description = "剩余电量（0-100）")
    @TableField("remain_power")
    private Integer remainPower;

    @Schema(description = "剩余存储空间（字节）")
    @TableField("remain_storage_size")
    private Long remainStorageSize;

    @Schema(description = "心跳时间")
    @TableField("heartbeat_time")
    private LocalDateTime heartbeatTime;

    @Schema(description = "设备版本（如：主:1.4.4 音频:1.4.2）")
    @TableField("device_ver")
    private String deviceVer;

    @Schema(description = "扩展信息")
    @TableField("extend")
    private String extend;

    @Schema(description = "主体信息")
    @TableField("body")
    private String body;

    @Schema(description = "数据创建时间（来自原始数据）")
    @TableField("created_time")
    private LocalDateTime createdTime;

    @Schema(description = "系统创建时间")
    @TableField("create_time")
    private LocalDateTime createTime;

    @Schema(description = "系统更新时间")
    @TableField("update_time")
    private LocalDateTime updateTime;

}

