package cn.iocoder.yudao.module.pms.controller.admin.yanfan.thingsmodel.vo;

import cn.iocoder.yudao.module.pms.controller.admin.yanfan.cache.domain.ModbusConfig;
import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - yf物模型分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class IotYfThingsModelPageReqVO extends PageParam {

    @Schema(description = "物模型名称", example = "王五")
    private String modelName;

    @Schema(description = "产品ID", example = "24632")
    private Long productId;

    @Schema(description = "产品名称", example = "张三")
    private String productName;
    private String limitValue;

    @Schema(description = "租户名称", example = "赵六")
    private String tenantName;

    @Schema(description = "标识符，产品下唯一")
    private String identifier;

    @Schema(description = "模型类别（1-属性，2-功能，3-事件）", example = "1")
    private Boolean type;

    @Schema(description = "数据类型（integer、decimal、string、bool、array、enum）", example = "1")
    private String datatype;

    @Schema(description = "数据定义")
    private String specs;

    @Schema(description = "是否图表展示（0-否，1-是）")
    private Boolean isChart;

    @Schema(description = "是否实时监测（0-否，1-是）")
    private Boolean isMonitor;

    @Schema(description = "是否历史存储（0-否，1-是）")
    private Boolean isHistory;

    @Schema(description = "是否只读数据(0-否，1-是)")
    private Boolean isReadonly;

    @Schema(description = "是否设备分享权限(0-否，1-是)")
    private Boolean isSharePerm;

    @Schema(description = "排序，值越大，排序越靠前")
    private Integer modelOrder;

    @Schema(description = "删除标志（0代表存在 2代表删除）")
    private String delFlag;

    @Schema(description = "创建者")
    private String createBy;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

    @Schema(description = "更新者")
    private String updateBy;

    @Schema(description = "备注", example = "你猜")
    private String remark;

    @Schema(description = "从机id", example = "5342")
    private Long tempSlaveId;

    @Schema(description = "计算公式")
    private String formula;

    @Schema(description = "控制公式")
    private String reverseFormula;

    @Schema(description = "寄存器地址值")
    private Integer regAddr;

    @Schema(description = "位定义选项")
    private String bitOption;

    @Schema(description = "解析类型 1.数值 2.选项", example = "2")
    private String valueType;

    @Schema(description = "是否是计算参数")
    private Integer isParams;

    @Schema(description = "读取寄存器数量")
    private Integer quantity;

    @Schema(description = "modbus功能码")
    private String code;

    @Schema(description = "modbus解析类型", example = "2")
    private String parseType;

    @Schema(description = "是否在APP显示(0-否，1-是)")
    private Boolean isApp;

    @Schema(description = "客户id", example = "22533")
    private String clientId;

    @Schema(description = "部门id", example = "9388")
    private Long deptId;
    @Deprecated
    private String language;
    private String modelName_zh_CN;

    /**
     * 物模型名称
     */
    private String modelName_en_US;
    private ModbusConfig modbusConfig;
}
