2021-04-21 16:47:18 +00:00
|
|
|
"""
|
|
|
|
This module defines the Condition database class.
|
|
|
|
"""
|
|
|
|
|
2021-05-07 17:46:14 +00:00
|
|
|
from ..base import ext
|
2021-04-21 16:47:18 +00:00
|
|
|
from .Enums import ConditionType
|
|
|
|
|
|
|
|
|
2021-05-07 17:46:14 +00:00
|
|
|
class Condition(ext.Model):
|
2021-04-21 16:47:18 +00:00
|
|
|
__tablename__ = "condition"
|
2021-05-07 17:46:14 +00:00
|
|
|
id = ext.Column(ext.Integer, primary_key=True)
|
2021-05-11 16:45:40 +00:00
|
|
|
type = ext.Column(ext.Enum(ConditionType), nullable=False, default=ConditionType.hashtag)
|
2021-05-07 17:46:14 +00:00
|
|
|
content = ext.Column(ext.String, nullable=False)
|
2021-05-06 12:12:11 +00:00
|
|
|
# FK
|
2021-05-07 17:46:14 +00:00
|
|
|
repository_id = ext.Column(ext.Integer, ext.ForeignKey("repository.id", ondelete="CASCADE"))
|
2021-04-21 16:47:18 +00:00
|
|
|
# Relationships
|
2021-05-11 16:45:40 +00:00
|
|
|
repository = ext.relationship("Repository", back_populates="conditions")
|
2021-05-07 17:46:14 +00:00
|
|
|
tweets = ext.relationship("Contains", back_populates="condition")
|
|
|
|
operations = ext.relationship("BoolOperation", back_populates="condition")
|
2021-04-29 02:35:51 +00:00
|
|
|
|
|
|
|
def to_json(self):
|
|
|
|
return {
|
|
|
|
"id": self.id,
|
2021-05-02 21:01:10 +00:00
|
|
|
"type": self.type.value,
|
2021-04-29 02:35:51 +00:00
|
|
|
"content": self.content,
|
|
|
|
}
|