1
Fork 0
mirror of https://github.com/pds-nest/nest.git synced 2024-11-26 23:14:19 +00:00
pds-2021-g2-nest/code/backend/nest_backend/database/tables/Alert.py

33 lines
1.3 KiB
Python
Raw Normal View History

"""
This module defines the Alert database class.
"""
from ..base import Base
class Alert(Base.Model):
__tablename__ = "alert"
id = Base.Column(Base.Integer, primary_key=True)
name = Base.Column(Base.String, nullable=False)
limit = Base.Column(Base.Integer, nullable=False)
window_size = Base.Column(Base.Integer, nullable=False)
# Foreign Keys
repository_id = Base.Column(Base.Integer, Base.ForeignKey("repository.id", ondelete="CASCADE"), nullable=False)
# Relationships
repository = Base.relationship("Repository", back_populates="alerts")
notifications = Base.relationship("Notification", back_populates="alert", cascade="all, delete")
2021-05-07 17:15:14 +00:00
operations = Base.relationship("BoolOperation", back_populates="alert", cascade="all, delete")
def to_json(self):
return {
'id': self.id,
'name': self.name,
'window_size': self.window_size,
'limit': self.limit,
'repository_id': self.repository_id,
'notifications': [notification.to_json() for notification in self.notifications],
'operations': [operation.to_json() for operation in self.operations],
'root_operation': [operation.to_json() for operation in self.operations if operation.is_root == True][
0] if self.operations else None
}