reports
This commit is contained in:
parent
d272ae0bd3
commit
ff01efe4bb
17 changed files with 1378 additions and 21 deletions
|
|
@ -109,6 +109,12 @@ class UserAccount(Base):
|
|||
agent_message_dispatches: Mapped[list["AgentMessageDispatchLog"]] = relationship(
|
||||
back_populates="user", cascade="all, delete-orphan"
|
||||
)
|
||||
urmiport_report_groups: Mapped[list["UrmiportReportGroup"]] = relationship(
|
||||
back_populates="user", cascade="all, delete-orphan"
|
||||
)
|
||||
urmiport_reports: Mapped[list["UrmiportReport"]] = relationship(
|
||||
back_populates="user", cascade="all, delete-orphan"
|
||||
)
|
||||
|
||||
|
||||
class PasswordCredential(Base):
|
||||
|
|
@ -609,6 +615,49 @@ class AgentMessageDispatchLog(Base):
|
|||
template: Mapped[AgentMessageTemplate] = relationship()
|
||||
|
||||
|
||||
class UrmiportReportGroup(Base):
|
||||
__tablename__ = "urmiport_report_groups"
|
||||
__table_args__ = (UniqueConstraint("user_id", "slug", name="uq_urmiport_group_user_slug"),)
|
||||
|
||||
id: Mapped[uuid.UUID] = mapped_column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
|
||||
user_id: Mapped[uuid.UUID] = mapped_column(
|
||||
ForeignKey("user_accounts.id", ondelete="CASCADE"), index=True
|
||||
)
|
||||
slug: Mapped[str] = mapped_column(String(50), index=True)
|
||||
display_name: Mapped[str | None] = mapped_column(String(120), nullable=True)
|
||||
default_access: Mapped[str] = mapped_column(String(16), default="public", index=True)
|
||||
password_hash: Mapped[str | None] = mapped_column(String(500), nullable=True)
|
||||
id_mode: Mapped[str] = mapped_column(String(16), default="auto")
|
||||
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), server_default=func.now())
|
||||
user: Mapped[UserAccount] = relationship(back_populates="urmiport_report_groups")
|
||||
reports: Mapped[list["UrmiportReport"]] = relationship(
|
||||
back_populates="group", cascade="all, delete-orphan"
|
||||
)
|
||||
|
||||
|
||||
class UrmiportReport(Base):
|
||||
__tablename__ = "urmiport_reports"
|
||||
__table_args__ = (UniqueConstraint("group_id", "report_id", name="uq_urmiport_group_report_id"),)
|
||||
|
||||
id: Mapped[uuid.UUID] = mapped_column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
|
||||
user_id: Mapped[uuid.UUID] = mapped_column(
|
||||
ForeignKey("user_accounts.id", ondelete="CASCADE"), index=True
|
||||
)
|
||||
group_id: Mapped[uuid.UUID] = mapped_column(
|
||||
ForeignKey("urmiport_report_groups.id", ondelete="CASCADE"), index=True
|
||||
)
|
||||
report_id: Mapped[str] = mapped_column(String(120), index=True)
|
||||
html_body: Mapped[str] = mapped_column(Text)
|
||||
access_mode: Mapped[str] = mapped_column(String(16), default="public", index=True)
|
||||
password_hash: Mapped[str | None] = mapped_column(String(500), nullable=True)
|
||||
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), server_default=func.now())
|
||||
updated_at: Mapped[datetime] = mapped_column(
|
||||
DateTime(timezone=True), server_default=func.now(), onupdate=func.now()
|
||||
)
|
||||
user: Mapped[UserAccount] = relationship(back_populates="urmiport_reports")
|
||||
group: Mapped[UrmiportReportGroup] = relationship(back_populates="reports")
|
||||
|
||||
|
||||
class PlatformSetting(Base):
|
||||
"""Runtime overrides for platform credentials (admin-editable)."""
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue