package com.zksy.base.radar.domain;

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

/**
 * 平升雷达流量计数据表
 * @TableName radar_data
 */
@TableName(value = "radar_data", schema = "app_user")
@Data
public class RadarData implements Serializable {
    /**
     * 主键
     */
    @TableId(value = "id")
    private String id;

    /**
     * 系统识别码
     */
    @TableField(value = "system_identifier")
    private String systemIdentifier;

    /**
     * 整帧长度（字节数）
     */
    @TableField(value = "frame_length")
    private String frameLength;

    /**
     * 包序号
     */
    @TableField(value = "packet_sequence")
    private String packetSequence;

    /**
     * 数据类型（0x31=上报，0x34=结束）
     */
    @TableField(value = "data_type")
    private String dataType;

    /**
     * 源地址（BCD格式）
     */
    @TableField(value = "source_addr")
    private String sourceAddr;

    /**
     * 目的地址长度
     */
    @TableField(value = "dest_addr_length")
    private String destAddrLength;

    /**
     * 目的地址（BCD格式）
     */
    @TableField(value = "dest_addr")
    private String destAddr;

    /**
     * 设备编码
     */
    @TableField(value = "device_code")
    private String deviceCode;

    /**
     * 功能码
     */
    @TableField(value = "function_code")
    private String functionCode;

    /**
     * 保留1
     */
    @TableField(value = "reserve1")
    private String reserve1;

    /**
     * 记录数量
     */
    @TableField(value = "record_count")
    private String recordCount;

    /**
     * 记录格式（按位判断字段）
     */
    @TableField(value = "record_format")
    private String recordFormat;

    /**
     * 电源电压（V）
     */
    @TableField(value = "power_voltage")
    private String powerVoltage;

    /**
     * 现场状态
     */
    @TableField(value = "field_status")
    private String fieldStatus;

    /**
     * 是否最后一包（现场状态D3位）
     */
    @TableField(value = "is_last_packet")
    private Integer isLastPacket;

    /**
     * 协议版本
     */
    @TableField(value = "protocol_version")
    private String protocolVersion;

    /**
     * 参数版本
     */
    @TableField(value = "param_version")
    private String paramVersion;

    /**
     * 信号质量
     */
    @TableField(value = "signal_quality")
    private String signalQuality;

    /**
     * 保留3
     */
    @TableField(value = "reserve3")
    private String reserve3;

    /**
     * 时间戳（2000-1-1开始）
     */
    @TableField(value = "timestamp_since")
    private LocalDateTime timestampSince;

    /**
     * 累计流量
     */
    @TableField(value = "meter1_net_total")
    private String meter1NetTotal;

    /**
     * 瞬时流量
     */
    @TableField(value = "meter1_instant_flow")
    private String meter1InstantFlow;

    /**
     * 流速
     */
    @TableField(value = "flow_speed")
    private String flowSpeed;

    /**
     * 水位
     */
    @TableField(value = "water_level")
    private String waterLevel;

    /**
     * 开关量
     */
    @TableField(value = "switch_value")
    private String switchValue;

    /**
     * 历史记录详情（多字段拼接）
     */
    @TableField(value = "history_records")
    private String historyRecords;

    /**
     * 数据插入时间
     */
    @TableField(value = "create_time")
    private LocalDateTime createTime;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}