package com.iailab.module.data.channel.modbus.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.Date;

/**
 * @author lirm
 * @Description
 * @createTime 2024年08月27日
 */
@Schema(description = "数据平台 - ModBusDevice Response VO")
@Data
@ExcelIgnoreUnannotated
public class ModBusTagRespVO {

    @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("ID")
    private String id;

    @Schema(description = "tag名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("tag名称")
    private String tagName;

    @Schema(description = "数据类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("数据类型")
    private String dataType;

    @Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("是否启用")
    private Integer enabled;

    @Schema(description = "数据值", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("数据值")
    private Double dataValue;

    @Schema(description = "大小端", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("大小端")
    private String format;

    @Schema(description = "关联设备", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("关联设备")
    private String device;

    @Schema(description = "Modbus地址 00001 ~49999", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("Modbus地址")
    private String address;

    @Schema(description = "采集频率", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("采集频率")
    private Integer samplingRate;

    @Schema(description = "描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("描述")
    private String tagDesc;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("创建时间")
    private Date createTime;

    @Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("更新时间")
    private Date updateTime;

    @Schema(description = "数据质量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("数据质量")
    private String dataQuality;

    @Schema(description = "数据时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("数据时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date dataTime;
}