from typing import List from fastapi import APIRouter, HTTPException, status from src.database.core import DbSession from src.models import StandardResponse from src.overhaul.service import (get_overhaul_critical_parts, get_overhaul_overview, get_overhaul_schedules, get_overhaul_system_components) from src.overhaul_scope.schema import ScopeRead from .schema import (OverhaulCriticalParts, OverhaulRead, OverhaulSystemComponents) router = APIRouter() @router.get("", response_model=StandardResponse[OverhaulRead]) async def get_overhaul(db_session: DbSession): """Get all scope pagination.""" overview = await get_overhaul_overview(db_session=db_session) schedules = await get_overhaul_schedules(db_session=db_session) criticalParts = get_overhaul_critical_parts() systemComponents = get_overhaul_system_components() return StandardResponse( data=OverhaulRead( overview=overview, schedules=schedules, criticalParts=criticalParts, systemComponents=systemComponents, ), message="Data retrieved successfully", ) @router.get("/schedules", response_model=StandardResponse[List[ScopeRead]]) async def get_schedules(): """Get all overhaul schedules.""" schedules = get_overhaul_schedules() return StandardResponse( data=schedules, message="Data retrieved successfully", ) @router.get("/critical-parts", response_model=StandardResponse[OverhaulCriticalParts]) async def get_critical_parts(): """Get all overhaul critical parts.""" criticalParts = get_overhaul_critical_parts() return StandardResponse( data=OverhaulCriticalParts(criticalParts=criticalParts), message="Data retrieved successfully", ) @router.get( "/system-components", response_model=StandardResponse[OverhaulSystemComponents] ) async def get_system_components(): """Get all overhaul system components.""" systemComponents = get_overhaul_system_components() return StandardResponse( data=OverhaulSystemComponents(systemComponents=systemComponents), message="Data retrieved successfully", )