Files
Crm-Backend/models/project.py

28 lines
740 B
Python

from typing import TYPE_CHECKING
from sqlalchemy.orm import Mapped, mapped_column, relationship
from models.base import BaseModel
from models.mixins import SoftDeleteMixin, CreatedAtMixin, IdMixin
if TYPE_CHECKING:
from models import Board, BuiltInModule
class Project(BaseModel, IdMixin, SoftDeleteMixin, CreatedAtMixin):
__tablename__ = "projects"
name: Mapped[str] = mapped_column()
boards: Mapped[list["Board"]] = relationship(
back_populates="project",
lazy="noload",
)
built_in_modules: Mapped[list["BuiltInModule"]] = relationship(
secondary="project_built_in_module",
back_populates="projects",
lazy="selectin",
order_by="asc(BuiltInModule.id)",
)