From 8c4ec31b9c20bef3f14a80dd1fca0a6e859053c7 Mon Sep 17 00:00:00 2001 From: Cizz22 Date: Mon, 10 Mar 2025 16:20:55 +0700 Subject: [PATCH] minor fix --- src/overhaul_activity/model.py | 4 ++++ src/overhaul_activity/schema.py | 10 +++++++++- src/overhaul_activity/service.py | 6 +++++- src/overhaul_job/model.py | 2 +- 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/overhaul_activity/model.py b/src/overhaul_activity/model.py index 32da226..b54ef09 100644 --- a/src/overhaul_activity/model.py +++ b/src/overhaul_activity/model.py @@ -29,3 +29,7 @@ class OverhaulActivity(Base, DefaultMixin): "OverhaulScope", lazy="raise", ) + + overhaul_jobs = relationship( + "OverhaulJob", back_populates="overhaul_activity", lazy="raise" + ) diff --git a/src/overhaul_activity/schema.py b/src/overhaul_activity/schema.py index 5429a55..ba6899f 100644 --- a/src/overhaul_activity/schema.py +++ b/src/overhaul_activity/schema.py @@ -6,7 +6,7 @@ from pydantic import Field from src.models import DefultBase, Pagination from src.scope_equipment.schema import MasterEquipmentRead - +from src.job.schema import ActivityMasterRead class OverhaulActivityBase(DefultBase): pass @@ -27,6 +27,13 @@ class OverhaulScope(DefultBase): end_date: datetime duration_oh: int + +class ScopeEquipmentJob(DefultBase): + job: ActivityMasterRead + +class OverhaulJob(DefultBase): + scope_equipment_job: ScopeEquipmentJob + class OverhaulActivityRead(OverhaulActivityBase): id: UUID material_cost: Optional[float] = Field(0) @@ -35,6 +42,7 @@ class OverhaulActivityRead(OverhaulActivityBase): status: str equipment: MasterEquipmentRead overhaul_scope: OverhaulScope + overhaul_jobs: Optional[List[OverhaulJob]] = Field([]) class OverhaulActivityPagination(Pagination): diff --git a/src/overhaul_activity/service.py b/src/overhaul_activity/service.py index 8b0696f..0a5669d 100644 --- a/src/overhaul_activity/service.py +++ b/src/overhaul_activity/service.py @@ -14,6 +14,9 @@ from src.overhaul_activity.utils import get_material_cost, get_service_cost from src.overhaul_scope.model import OverhaulScope from src.overhaul_scope.service import get as get_session from src.scope_equipment.model import MasterEquipment +from src.job.model import MasterActivity +from src.scope_equipment_job.model import ScopeEquipmentJob +from src.overhaul_job.model import OverhaulJob from .model import OverhaulActivity from .schema import (OverhaulActivityCreate, OverhaulActivityRead, @@ -50,6 +53,7 @@ async def get_all( .where(OverhaulActivity.overhaul_scope_id == overhaul_session_id) .options(joinedload(OverhaulActivity.equipment).options(joinedload(MasterEquipment.parent).options(joinedload(MasterEquipment.parent)))) .options(selectinload(OverhaulActivity.overhaul_scope)) + .options(selectinload(OverhaulActivity.overhaul_jobs).options(joinedload(OverhaulJob.scope_equipment_job).options(joinedload(ScopeEquipmentJob.job)))) ) if assetnum: @@ -73,7 +77,7 @@ async def get_all_by_session_id(*, db_session: DbSession, overhaul_session_id): query = ( Select(OverhaulActivity) .where(OverhaulActivity.overhaul_scope_id == overhaul_session_id) - .options(joinedload(OverhaulActivity.equipment).options(MasterEquipment.parent).options(MasterEquipment.parent)) + .options(joinedload(OverhaulActivity.equipment).options(joinedload(MasterEquipment.parent).options(joinedload(MasterEquipment.parent)))) .options(selectinload(OverhaulActivity.overhaul_scope)) ) diff --git a/src/overhaul_job/model.py b/src/overhaul_job/model.py index d5fd766..d504cd7 100644 --- a/src/overhaul_job/model.py +++ b/src/overhaul_job/model.py @@ -26,4 +26,4 @@ class OverhaulJob(Base, DefaultMixin): "ScopeEquipmentJob", lazy="raise", back_populates="overhaul_jobs" ) - overhaul_activity = relationship("OverhaulActivity", lazy="raise") + overhaul_activity = relationship("OverhaulActivity", lazy="raise", back_populates="overhaul_jobs")