diff --git a/app/model/ApproveModel.py b/app/model/ApproveModel.py index dd7dc29..392a552 100644 --- a/app/model/ApproveModel.py +++ b/app/model/ApproveModel.py @@ -6,6 +6,7 @@ from sqlmodel import Field, Relationship, select from app.model.ProjectModel import ProjectModel from app.model.PublicApproveModel import PublicApproveModel +from app.model.UserModel import UserServiceModel from app.utils.create_module_service import create_model_service @@ -46,11 +47,41 @@ class ApproveModel(PublicApproveModel, table=True): def project(self, value: Optional[ProjectModel]) -> None: pass + # /*---------------------------------------user-------------------------------------------*/ + + apply_user_id: str = Field( + default=None, + description="申请人ID", + foreign_key="pl_user.id", + nullable=True + ) + + apply_user_relationship: Optional["UserServiceModel"] = Relationship( + sa_relationship_kwargs={ + "foreign_keys": "ApproveModel.apply_user_id", + "remote_side": "UserServiceModel.id", + "uselist": False + } + ) + + @computed_field + @property + def apply_user(self) -> Optional["UserServiceModel"]: + try: + return self.apply_user_relationship + except: + return None + + @apply_user.setter + def apply_user(self, value: Optional["UserServiceModel"]) -> None: + pass + ApproveService = create_model_service( Cls=ApproveModel, custom_query=lambda: select(ApproveModel) .options( - selectinload(ApproveModel.proj_rel) + selectinload(ApproveModel.proj_rel), + selectinload(ApproveModel.apply_user_relationship), ) )