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

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

import java.util.Date;

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

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

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

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

    @Schema(description = "端口", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("端口")
    private Integer port;

    @Schema(description = "不活动超时(ms)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("不活动超时(ms)")
    private Integer connectInactivityTimeout;

    @Schema(description = "重连超时(ms)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("重连超时(ms)")
    private Integer reconnectInterval;

    @Schema(description = "重试次数", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("重试次数")
    private Integer attemptsBeforeTimeout;

    @Schema(description = "重试间隔(ms)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("重试间隔(ms)")
    private Integer waitToRetryMilliseconds;

    @Schema(description = "读超时(ms)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("读超时(ms)")
    private Integer readTimeout;

    @Schema(description = "写超时(ms)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("写超时(ms)")
    private Integer writeTimeout;

    @Schema(description = "是否使用优化", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("是否使用优化")
    private Boolean useOptimizedBlockRead;

    @Schema(description = "统内部用,默认空字符串", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("统内部用,默认空字符串")
    private String projectReference;

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

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