class SensorAlertStatus(db.Model):
    """Association table for sensors and alerts"""
    __tablename__ = 'sensor_alert_status'
    __table_args__ = (db.PrimaryKeyConstraint('sensor_id', 'alert_id'), )

    sensor_id = db.Column(db.Integer,
                          db.ForeignKey('sensors.id', ondelete="CASCADE"))
    alert_id = db.Column(db.Integer,
                         db.ForeignKey('alerts.id', ondelete="CASCADE"))
    last_execute = db.Column(db.DateTime)
    triggered = db.Column(db.Boolean)
class NetworkAlertAssociation(db.Model):
    """Association table for network alerts"""
    __tablename__ = 'network_alerts'
    __table_args__ = (db.PrimaryKeyConstraint('alert_id', 'network_id'), )

    network_id = db.Column(db.Integer,
                           db.ForeignKey('networks.id', ondelete="CASCADE"))
    alert_id = db.Column(db.Integer,
                         db.ForeignKey('alerts.id', ondelete="CASCADE"))

    networks = db.relationship("Network", back_populates="alerts")
    alert = db.relationship("Alert", back_populates="networks")
class CompanyUserAssociation(db.Model):
    """Association table for sensors and alerts"""
    __tablename__ = 'company_user'
    __table_args__ = (db.PrimaryKeyConstraint('user_id', 'company_id'), )

    user_id = db.Column(db.Integer,
                        db.ForeignKey('users.id', ondelete="CASCADE"))
    company_id = db.Column(db.Integer,
                           db.ForeignKey('companies.id', ondelete="CASCADE"))
    role = db.Column(db.String, default=C_ROLE_DEFAULT)

    user = db.relationship("User", back_populates="companies")
    company = db.relationship("Company", back_populates="users")
Exemple #4
0
class SensorEventAssociation(db.Model):
    """
    Association table for sensors and events
    """
    __tablename__ = 'sensor_event'
    __table_args__ = (db.PrimaryKeyConstraint('sensor_id', 'event_id'), )

    sensor_id = db.Column(db.Integer,
                          db.ForeignKey('sensors.id', ondelete="CASCADE"))
    event_id = db.Column(db.String,
                         db.ForeignKey('events.id', ondelete="CASCADE"))
    # last_execute = db.Column(db.DateTime)
    # actuator_id = db.Column(db.Integer)

    sensor = db.relationship("Sensor", back_populates="events")
    event = db.relationship("Event", back_populates="sensors")
class SensorAlertAssociation(db.Model):
    """
    Association table for sensors and alerts

    actuator_id: Change config value of Sensor on alert.
    If alert action is a trigger type the actuator_id will be required.
    """
    __tablename__ = 'sensor_alert'
    __table_args__ = (db.PrimaryKeyConstraint('sensor_id', 'alert_id'), )

    sensor_id = db.Column(db.Integer,
                          db.ForeignKey('sensors.id', ondelete="CASCADE"))
    alert_id = db.Column(db.Integer,
                         db.ForeignKey('alerts.id', ondelete="CASCADE"))
    last_execute = db.Column(db.DateTime)
    actuator_id = db.Column(db.Integer)

    sensor = db.relationship("Sensor", back_populates="alerts")
    alert = db.relationship("Alert", back_populates="sensors")
Exemple #6
0
# Authors: Gopal Lal
#
# License: www.baseapp.com/swarmsense-whitelabel-iot-platoform
"""Network Database Model"""
import posixpath
from datetime import datetime

from snms.core.db import db
from snms.core.storage import StoredFileMixin
from snms.core.config import config

network_sensor_table = db.Table(
    'network_sensor', db.Model.metadata,
    db.Column('network_id', db.Integer, db.ForeignKey('networks.id')),
    db.Column('sensor_id', db.Integer, db.ForeignKey('sensors.id')),
    db.PrimaryKeyConstraint('network_id', 'sensor_id'))


class Network(StoredFileMixin, db.Model):
    """Network database model."""
    __tablename__ = 'networks'
    add_file_date_column = False
    file_required = False

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String)
    company_id = db.Column(db.Integer, db.ForeignKey('companies.id'))
    deleted = db.Column(db.Boolean, default=False)
    uid = db.Column(db.String, unique=True)

    last_update = db.Column(db.DateTime, default=datetime.utcnow)