feat: groups
This commit is contained in:
@ -9,6 +9,7 @@ from .built_in_module import ( # noqa: F401
|
||||
built_in_module_dependencies as built_in_module_dependencies,
|
||||
)
|
||||
from .deal import Deal as Deal
|
||||
from .deal_group import DealGroup as DealGroup
|
||||
from .project import Project as Project
|
||||
from .status import Status as Status, DealStatusHistory as DealStatusHistory
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ from models.base import BaseModel
|
||||
from models.mixins import SoftDeleteMixin, CreatedAtMixin, IdMixin
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from models import Status, Board, DealStatusHistory
|
||||
from models import Status, Board, DealStatusHistory, DealGroup
|
||||
from modules.clients.models import Client
|
||||
|
||||
|
||||
@ -34,6 +34,13 @@ class Deal(BaseModel, IdMixin, SoftDeleteMixin, CreatedAtMixin):
|
||||
lazy="noload",
|
||||
)
|
||||
|
||||
group_id: Mapped[Optional[int]] = mapped_column(
|
||||
ForeignKey("deal_groups.id"), default=None, server_default=None
|
||||
)
|
||||
group: Mapped[Optional["DealGroup"]] = relationship(
|
||||
lazy="noload", back_populates="deals"
|
||||
)
|
||||
|
||||
# module client
|
||||
client_id: Mapped[Optional[int]] = mapped_column(
|
||||
ForeignKey("clients.id", ondelete="CASCADE"),
|
||||
|
||||
17
models/deal_group.py
Normal file
17
models/deal_group.py
Normal file
@ -0,0 +1,17 @@
|
||||
from typing import TYPE_CHECKING, Optional
|
||||
|
||||
from sqlalchemy.orm import mapped_column, Mapped, relationship
|
||||
|
||||
from models.base import BaseModel
|
||||
from models.mixins import IdMixin
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from models import Deal
|
||||
|
||||
|
||||
class DealGroup(BaseModel, IdMixin):
|
||||
__tablename__ = "deal_groups"
|
||||
|
||||
name: Mapped[Optional[str]] = mapped_column()
|
||||
lexorank: Mapped[str] = mapped_column()
|
||||
deals: Mapped[list["Deal"]] = relationship(back_populates="group", lazy="noload")
|
||||
Reference in New Issue
Block a user