package cn.iocoder.yudao.module.pms.dal.dataobject.yanfan;

import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;

/**
 * 物模型 DO
 *
 * @author 李鹏辉
 */
@TableName("iot_things_model")
@KeySequence("iot_things_model_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
//@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ThingsModelDO {

    /**
     * 物模型ID
     */
    @TableId
    private Long modelId;
    /**
     * 物模型名称
     */
    private String modelName;
    /**
     * 产品ID
     */
    private Long productId;
    /**
     * 产品名称
     */
    private String productName;
    /**
     * 租户名称
     */
    private String tenantName;
    /**
     * 标识符，产品下唯一
     */
    private String identifier;
    /**
     * 模型类别（1-属性，2-功能，3-事件）
     */
    private Boolean type;
    /**
     * 数据类型（integer、decimal、string、bool、array、enum）
     */
    private String datatype;
    /**
     * 数据定义
     */
    private String specs;
    /**
     * 是否图表展示（0-否，1-是）
     */
    private Boolean isChart;
    /**
     * 是否实时监测（0-否，1-是）
     */
    private Boolean isMonitor;
    /**
     * 是否历史存储（0-否，1-是）
     */
    private Boolean isHistory;
    /**
     * 是否只读数据(0-否，1-是)
     */
    private Boolean isReadonly;
    /**
     * 是否设备分享权限(0-否，1-是)
     */
    private Boolean isSharePerm;
    /**
     * 排序，值越大，排序越靠前
     */
    private Integer modelOrder;
    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private String delFlag;
    /**
     * 创建者
     */
    private String createBy;
    /**
     * 更新者
     */
    private String updateBy;
    /**
     * 备注
     */
    private String remark;
    /**
     * 从机id
     */
    private Long tempSlaveId;
    /**
     * 计算公式
     */
    private String formula;
    /**
     * 控制公式
     */
    private String reverseFormula;
    /**
     * 寄存器地址值
     */
    private Integer regAddr;
    /**
     * 位定义选项
     */
    private String bitOption;
    /**
     * 解析类型 1.数值 2.选项
     */
    private String valueType;
    /**
     * 是否是计算参数
     */
    private Integer isParams;
    /**
     * 读取寄存器数量
     */
    private Integer quantity;
    /**
     * modbus功能码
     */
    private String code;
    /**
     * modbus解析类型
     */
    private String parseType;
    /**
     * 是否在APP显示(0-否，1-是)
     */
    private Boolean isApp;

}
