mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-05-31 19:45:15 +02:00
feat(automation): wire SQLAlchemy relationships on both sides
This commit is contained in:
parent
7ac99b89a0
commit
7f4c1c25ab
4 changed files with 60 additions and 0 deletions
|
|
@ -14,6 +14,7 @@ from sqlalchemy import (
|
|||
Text,
|
||||
)
|
||||
from sqlalchemy.dialects.postgresql import JSONB, UUID
|
||||
from sqlalchemy.orm import relationship
|
||||
|
||||
from app.db import BaseModel, TimestampMixin
|
||||
|
||||
|
|
@ -59,3 +60,18 @@ class Automation(BaseModel, TimestampMixin):
|
|||
onupdate=lambda: datetime.now(UTC),
|
||||
index=True,
|
||||
)
|
||||
|
||||
search_space = relationship("SearchSpace", back_populates="automations")
|
||||
created_by = relationship("User", back_populates="automations")
|
||||
triggers = relationship(
|
||||
"AutomationTrigger",
|
||||
back_populates="automation",
|
||||
cascade="all, delete-orphan",
|
||||
passive_deletes=True,
|
||||
)
|
||||
runs = relationship(
|
||||
"AutomationRun",
|
||||
back_populates="automation",
|
||||
cascade="all, delete-orphan",
|
||||
passive_deletes=True,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ from sqlalchemy import (
|
|||
Integer,
|
||||
)
|
||||
from sqlalchemy.dialects.postgresql import JSONB
|
||||
from sqlalchemy.orm import relationship
|
||||
|
||||
from app.db import BaseModel, TimestampMixin
|
||||
|
||||
|
|
@ -55,3 +56,6 @@ class AutomationRun(BaseModel, TimestampMixin):
|
|||
|
||||
started_at = Column(TIMESTAMP(timezone=True), nullable=True)
|
||||
finished_at = Column(TIMESTAMP(timezone=True), nullable=True)
|
||||
|
||||
automation = relationship("Automation", back_populates="runs")
|
||||
trigger = relationship("AutomationTrigger", back_populates="runs")
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ from sqlalchemy import (
|
|||
Integer,
|
||||
)
|
||||
from sqlalchemy.dialects.postgresql import JSONB
|
||||
from sqlalchemy.orm import relationship
|
||||
|
||||
from app.db import BaseModel, TimestampMixin
|
||||
|
||||
|
|
@ -44,3 +45,10 @@ class AutomationTrigger(BaseModel, TimestampMixin):
|
|||
)
|
||||
|
||||
last_fired_at = Column(TIMESTAMP(timezone=True), nullable=True)
|
||||
|
||||
automation = relationship("Automation", back_populates="triggers")
|
||||
runs = relationship(
|
||||
"AutomationRun",
|
||||
back_populates="trigger",
|
||||
passive_deletes=True,
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue