Skip to content

Data Diagram (All Tasks version)

jcadam14 edited this page Jan 29, 2024 · 2 revisions
---
title: Filing API Database Classes
---
classDiagram
    class `FilingTaskDAO(Base):`{
      __tablename__ = "filing_task"
      name: Mapped[str] = mapped_column#40;primary_key=True#41;
   }

    class `FilingTaskStateDAO(Base):`{
      __tablename__ = "filing_task_state"
      filing: Mapped[str] = mapped_column#40;ForeignKey#40;"filing.id"#41;, primary_key=True#41;
      task: Mapped[str] = mapped_column#40;ForeignKey#40;"filing_task.name"#41;, primary_key=True#41;
      user: Mapped[str] = mapped_column#40;nullable=True#41;
      completed: Mapped[bool] = mapped_column#40;server_default=False#41;
      change_timestamp: Mapped[datetime] = mapped_column#40;nullable=True#41;
   }

    class `FilingDAO(AuditMixin, Base):`{
      __tablename__ = "filing"
      id: Mapped[int] = mapped_column#40;primary_key=True, autoincrement=True#41;
      lei: Mapped[str]
      tasks: Mapped[List[FilingTaskStateDAO]] = relationship#40;#41;
      filing_period = Mapped[str] = mapped_column(ForeignKey#40;"filing_period.id"#41;#41;
      institution_snapshot_id = Mapped[str]
      contact_info: Mapped[str] = mapped_column(nullable=True)
   }

class `FilingPeriodDAO(AuditMixin, Base):`{
    __tablename__ = "filing_period"
    id: Mapped[int] = mapped_column#40;primary_key=True, autoincrement=True#41;
    name: Mapped[str]
    start_period: Mapped[datetime]
    end_period: Mapped[datetime]
    due: Mapped[datetime]
    filing_type: Mapped[FilingType] = mapped_column#40;Enum#40;FilingType#41;#41;
}

class `SubmissionDAO(AuditMixin, Base):`{
    __tablename__ = "submission"
    id: Mapped[str] = mapped_column#40;index=True, primary_key=True#41;
    submitter: Mapped[str]
    state: Mapped[SubmissionState] = mapped_column#40;Enum#40;SubmissionState#41;#41;
    validation_ruleset_version: Mapped[str]
    validation_json: Mapped[dict[str, Any]] = mapped_column#40;JSON, nullable=True#41;
    filing: Mapped[str] = mapped_column#40;ForeignKey#40;"filing.id"#41;#41;
    confirmation_id: Mapped[str] = mapped_column#40;nullable=True#41;
}
`FilingPeriodDAO(AuditMixin, Base):` *-- `FilingDAO(AuditMixin, Base):`
`FilingDAO(AuditMixin, Base):` *-- `SubmissionDAO(AuditMixin, Base):`
`FilingDAO(AuditMixin, Base):` *-- `FilingTaskStateDAO(Base):`
`FilingTaskStateDAO(Base):` *-- `FilingTaskDAO(Base):`