class DeviceEventsHour(BaseAggr): __tablename__ = 'device_events_hour' __table_args__ = (db.Index('device_events_hour_countTime_idx', "countTime"), ) countTime = db.Column(db.DateTime, primary_key=True) tenantID = db.Column(db.String, primary_key=True) deviceID = db.Column(db.String(100), primary_key=True) streamID = db.Column(db.String(100), primary_key=True) dataPointID = db.Column(db.String(100), primary_key=True) count = db.Column(db.Integer)
class EmqxBillHour(ModelMixin, db.Model): __tablename__ = 'emqx_bills_hour' __table_args__ = (db.Index('emqx_bills_hour_countTime_idx', "countTime"), ) msgType = db.Column(db.Integer, primary_key=True) # 消息类型 msgCount = db.Column(db.Integer) # 小时消息数量 msgSize = db.Column(db.Integer) # 小时消息流量 countTime = db.Column(db.DateTime, primary_key=True) # 统计时间 tenantID = db.Column(db.String, db.ForeignKey('tenants.tenantID', onupdate="CASCADE", ondelete="CASCADE"), primary_key=True)
class ConnectLog(ModelMixin, db.Model): """ client connect log """ __tablename__ = 'connect_logs' __table_args__ = (db.Index('connect_logs_msgTime_idx', "msgTime"), ) keepAlive = db.Column(db.Integer) IP = db.Column(db.String) connectStatus = db.Column( db.SmallInteger) # 0:Offline, 1:Online, 2:AuthenticateFailed msgTime = db.Column(db.DateTime, server_default=func.now(), primary_key=True) deviceID = db.Column(db.String, primary_key=True) # device uid tenantID = db.Column(db.String, primary_key=True) # tenant uid
class DeviceEvent(ModelMixin, db.Model): """ device upload event """ __tablename__ = 'device_events' __table_args__ = (db.Index('device_events_msgTime_idx', "msgTime"), ) msgTime = db.Column(db.DateTime, primary_key=True) tenantID = db.Column(db.String(9), primary_key=True) deviceID = db.Column(db.String(100), primary_key=True) dataType = db.Column(db.SmallInteger, primary_key=True) # 1:event 2:response topic = db.Column(db.String(500)) streamID = db.Column(db.String(100)) data = db.Column(JSONB) responseResult = db.Column(JSONB)
class PublishLog(ModelMixin, db.Model): """ controlType: 1:Publish,2:Read,3:Write,4 Execute publishStatus: 0:Failed,1:Published 2:Arrived """ __tablename__ = 'publish_logs' __table_args__ = (db.Index('publish_logs_msgTime_idx', "msgTime"), ) topic = db.Column(db.String(1000)) # mqtt topic streamID = db.Column(db.String(1000)) # stream id payload = db.Column(JSONB) # publish payload publishStatus = db.Column(db.SmallInteger) taskID = db.Column(db.String(64)) msgTime = db.Column(db.DateTime, server_default=func.now(), primary_key=True) deviceID = db.Column(db.String, primary_key=True) # device uid tenantID = db.Column(db.String, primary_key=True) # tenant uid
class CurrentAlert(BaseModel): __tablename__ = 'current_alerts' createAt = db.Column(db.DateTime, server_default=func.now()) alertName = db.Column(db.String(50)) alertContent = db.Column(db.String(300)) alertTimes = db.Column(db.Integer) alertDetail = db.Column(JSON) alertSeverity = db.Column(db.SmallInteger) startTime = db.Column(db.DateTime) deviceID = db.Column(db.String(100)) ruleIntID = db.Column( db.Integer, db.ForeignKey('rules.id', onupdate="CASCADE", ondelete="CASCADE")) tenantID = db.Column( db.String, db.ForeignKey('tenants.tenantID', onupdate="CASCADE", ondelete="CASCADE")) __table_args__ = (db.Index('alerts_rule_key', 'tenantID', 'deviceID', 'ruleIntID', unique=True), )
tenantID = db.Column( db.String, db.ForeignKey('tenants.tenantID', onupdate="CASCADE", ondelete="CASCADE")) EmqxBill = db.Table( 'emqx_bills', db.Column('msgTime', db.DateTime, nullable=False), # 消息时间 db.Column('tenantID', db.String(9)), # 租户ID db.Column('productID', db.String(6)), # 产品 ID db.Column('deviceID', db.String(100)), # 设备ID db.Column('msgType', db.SmallInteger), # 1登录,2订阅,3取消订阅,4发布,5接收 db.Column('msgSize', db.Integer), # 消息大小 db.Index('emqx_bills_msgTime_idx', 'msgTime'), db.Index('emqx_bills_union_idx', 'msgTime', 'tenantID', 'deviceID', 'msgType')) class EmqxBillHour(ModelMixin, db.Model): __tablename__ = 'emqx_bills_hour' __table_args__ = (db.Index('emqx_bills_hour_countTime_idx', "countTime"), ) msgType = db.Column(db.Integer, primary_key=True) # 消息类型 msgCount = db.Column(db.Integer) # 小时消息数量 msgSize = db.Column(db.Integer) # 小时消息流量 countTime = db.Column(db.DateTime, primary_key=True) # 统计时间 tenantID = db.Column(db.String, db.ForeignKey('tenants.tenantID', onupdate="CASCADE", ondelete="CASCADE"),