diff --git a/src/overhaul_job/schema.py b/src/overhaul_job/schema.py index 51dc84d..ddbcc8c 100644 --- a/src/overhaul_job/schema.py +++ b/src/overhaul_job/schema.py @@ -7,7 +7,7 @@ from pydantic import Field from src.models import DefultBase, Pagination from src.overhaul_scope.schema import ScopeRead from src.scope_equipment_job.schema import ScopeEquipmentJobRead - +from src.job.schema import ActivityMasterRead class OverhaulJobBase(DefultBase): pass @@ -26,12 +26,15 @@ class OverhaulActivity(DefultBase): overhaul_scope_id: UUID overhaul_scope: ScopeRead +class ScopeEquipment(DefultBase): + job: ActivityMasterRead class OverhaulJobRead(OverhaulJobBase): id: UUID - scope_equipment_job: ScopeEquipmentJobRead + scope_equipment_job: ScopeEquipment overhaul_activity: OverhaulActivity + class OverhaulJobPagination(Pagination): items: List[OverhaulJobRead] = [] diff --git a/src/overhaul_job/service.py b/src/overhaul_job/service.py index 028975b..f28edbc 100644 --- a/src/overhaul_job/service.py +++ b/src/overhaul_job/service.py @@ -7,6 +7,8 @@ from sqlalchemy.orm import selectinload from src.auth.service import CurrentUser from src.database.core import DbSession from src.database.service import search_filter_sort_paginate +from src.scope_equipment_job.model import ScopeEquipmentJob +from src.overhaul_activity.model import OverhaulActivity from .model import OverhaulJob from .schema import OverhaulJobCreate @@ -18,8 +20,10 @@ async def get_all(*, common, overhaul_equipment_id: str): Select(OverhaulJob) .where(OverhaulJob.overhaul_activity_id == overhaul_equipment_id) .options( - selectinload(OverhaulJob.scope_equipment_job), - selectinload(OverhaulJob.overhaul_activity), + selectinload(OverhaulJob.scope_equipment_job).options( + selectinload(ScopeEquipmentJob.job)), + selectinload(OverhaulJob.overhaul_activity).options( + selectinload(OverhaulActivity.overhaul_scope)), ) )