feat: setting manager for a deal

This commit is contained in:
2024-11-17 13:54:51 +04:00
parent 3dbbae2173
commit 915206d969
7 changed files with 53 additions and 4 deletions

View File

@@ -8,6 +8,7 @@ from models.base import BaseModel
if TYPE_CHECKING:
from models.payroll import PayRate, PaymentRecord
from models import Deal
role_permissions = Table(
'role_permissions',
@@ -92,6 +93,11 @@ class User(BaseModel):
foreign_keys="PaymentRecord.user_id"
)
managed_deals: Mapped[list["Deal"]] = relationship(
back_populates="manager",
uselist=True,
)
class Position(BaseModel):
__tablename__ = 'positions'

View File

@@ -10,9 +10,12 @@ from .marketplace import BaseMarketplace
from .shipping_warehouse import ShippingWarehouse
if TYPE_CHECKING:
from . import (DealBillRequest, ServicePriceCategory,
DealGroup
)
from . import (
DealBillRequest,
ServicePriceCategory,
DealGroup,
User,
)
# @unique
@@ -98,6 +101,9 @@ class Deal(BaseModel):
back_populates='deals'
)
manager_id: Mapped[int] = mapped_column(ForeignKey('users.id'), nullable=True)
manager: Mapped[Optional["User"]] = relationship(back_populates='managed_deals', lazy='joined')
class DealStatusHistory(BaseModel):
__tablename__ = 'deals_status_history'