58 lines
2.2 KiB
Python
58 lines
2.2 KiB
Python
from datetime import datetime
|
|
import typing
|
|
|
|
from sqlalchemy import DateTime, ForeignKey, Integer, String, func
|
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
|
|
from src.db.models.form_type import FormTypeEnum
|
|
from src.db.base import Base
|
|
|
|
|
|
class BudgetForm(Base):
|
|
__tablename__ = "budget_form"
|
|
__table_args__ = {"schema": "v3"}
|
|
|
|
id: Mapped[int] = mapped_column(primary_key=True)
|
|
form_type_code: Mapped[FormTypeEnum] = mapped_column( #type: ignore
|
|
String, ForeignKey("v3.form_type.code")
|
|
)
|
|
year: Mapped[int | None] = mapped_column(Integer)
|
|
created_by: Mapped[int | None] = mapped_column(
|
|
Integer, ForeignKey("v3.app_user.id", name="fk_v3_budget_form_created_by")
|
|
)
|
|
created_at: Mapped[datetime | None] = mapped_column(
|
|
DateTime, server_default=func.now()
|
|
)
|
|
updated_by: Mapped[int | None] = mapped_column(
|
|
Integer, ForeignKey("v3.app_user.id", name="fk_v3_budget_form_updated_by")
|
|
)
|
|
updated_at: Mapped[datetime | None] = mapped_column(DateTime)
|
|
org_unit_id: Mapped[int | None] = mapped_column(
|
|
Integer, ForeignKey("v3.org_unit.id", name="fk_v3_budget_form_org_unit")
|
|
)
|
|
|
|
form_type: Mapped["FormType"] = relationship(
|
|
"FormType", #back_populates="budget_forms"
|
|
)
|
|
# creator: Mapped[typing.Optional["AppUser"]] = relationship(
|
|
# "AppUser", back_populates="created_budget_forms", foreign_keys=[created_by]
|
|
# )
|
|
# updater: Mapped[typing.Optional["AppUser"]] = relationship(
|
|
# "AppUser", back_populates="updated_budget_forms", foreign_keys=[updated_by]
|
|
# )
|
|
org_unit: Mapped[typing.Optional["OrgUnit"]] = relationship(
|
|
"OrgUnit", #back_populates="budget_forms"
|
|
)
|
|
# budget_lines: Mapped[list["BudgetLine"]] = relationship(
|
|
# "BudgetLine", back_populates="budget_form"
|
|
# )
|
|
# fixed_asset_reports: Mapped[list["FixedAssetReport"]] = relationship(
|
|
# "FixedAssetReport", back_populates="budget_form"
|
|
# )
|
|
# form_phases: Mapped[list["FormPhase"]] = relationship(
|
|
# "FormPhase", back_populates="budget_form"
|
|
# )
|
|
# form_limits: Mapped[list["FormLimit"]] = relationship(
|
|
# "FormLimit", back_populates="budget_form"
|
|
# )
|