Compare commits
1 Commits
afc5d35529
...
88a9713fb3
| Author | SHA1 | Date | |
|---|---|---|---|
| 88a9713fb3 |
@ -10,6 +10,7 @@ from src.db.models.collegial_approval import CollegialApproval
|
||||
from src.db.models.contract_detail import ContractDetail
|
||||
from src.db.models.contract_summary import ContractSummary
|
||||
from src.db.models.expense_item import ExpenseItem
|
||||
from src.db.models.form3_phase import Form3Phase
|
||||
from src.db.models.form_limit import FormLimit
|
||||
from src.db.models.form_phase import FormPhase
|
||||
from src.db.models.form_type import FormType
|
||||
|
||||
27
api/src/db/models/form3_phase.py
Normal file
27
api/src/db/models/form3_phase.py
Normal file
@ -0,0 +1,27 @@
|
||||
from datetime import datetime
|
||||
|
||||
from sqlalchemy import ARRAY, CheckConstraint, DateTime, ForeignKey, Index, Integer, String, Text, text
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
|
||||
from src.db.base import Base
|
||||
|
||||
|
||||
class Form3Phase(Base):
|
||||
__tablename__ = "form3_phase"
|
||||
__table_args__ = (
|
||||
CheckConstraint(text("cardinality(column_keys) > 0"), name="chk_v3_form3_phase_columns"),
|
||||
CheckConstraint(text("role != 'ADMIN'"), name="chk_v3_form3_phase_no_admin"),
|
||||
CheckConstraint(text("closes_at > opens_at"), name="chk_v3_form3_phase_window"),
|
||||
Index("ix_v3_form3_phase_active", "rf_project_report_id", "role", "opens_at", "closes_at"),
|
||||
Index("ix_v3_form3_phase_columns_gin", "column_keys", postgresql_using="gin"),
|
||||
{"schema": "v3"},
|
||||
)
|
||||
|
||||
rf_project_report_id: Mapped[int] = mapped_column(
|
||||
Integer, ForeignKey("v3.rf_project_report.id", ondelete="CASCADE"), primary_key=True
|
||||
)
|
||||
phase_code: Mapped[str] = mapped_column(String, primary_key=True)
|
||||
role: Mapped[str] = mapped_column(String, ForeignKey("v3.role.code"))
|
||||
column_keys: Mapped[list[str]] = mapped_column(ARRAY(Text))
|
||||
opens_at: Mapped[datetime] = mapped_column(DateTime(timezone=True))
|
||||
closes_at: Mapped[datetime] = mapped_column(DateTime(timezone=True))
|
||||
Loading…
x
Reference in New Issue
Block a user