from typing import List, Optional from fastapi import APIRouter, Depends from fastapi.responses import JSONResponse from pydantic import BaseModel from src.auth.service import JWTBearer from src.calculation_budget_constrains.router import \ router as calculation_budget_constraint from src.calculation_target_reliability.router import \ router as calculation_target_reliability from src.calculation_time_constrains.router import \ router as calculation_time_constrains_router # from src.job.router import router as job_router from src.overhaul.router import router as overhaul_router from src.standard_scope.router import router as standard_scope_router from src.overhaul_activity.router import router as overhaul_activity_router from src.workscope_group.router import router as workscope_group_router from src.equipment_workscope_group.router import router as equipment_workscope_group_router # from src.overhaul_job.router import router as job_overhaul_router # from src.overhaul_scope.router import router as scope_router # from src.scope_equipment.router import router as scope_equipment_router # from src.scope_equipment_job.router import router as scope_equipment_job_router # from src.overhaul_schedule.router import router as overhaul_schedule_router from src.overhaul_gantt.router import router as gantt_router from src.sparepart.router import router as sparepart_router from src.equipment_sparepart.router import router as equipment_sparepart_router # from src.overhaul_scope.router import router as scope_router # from src.scope_equipment.router import router as scope_equipment_router # from src.overhaul.router import router as overhaul_router # from src.overhaul_history.router import router as overhaul_history_router # from src.overhaul_activity.router import router as scope_equipment_activity_router # # from src.overhaul_schedule.router import router as ovehaul_schedule_router # from src.scope_equipment_part.router import router as scope_equipment_part_router # from src.calculation_target_reliability.router import router as calculation_target_reliability # # from src.master_activity.router import router as activity_router class ErrorMessage(BaseModel): msg: str class ErrorResponse(BaseModel): detail: Optional[List[ErrorMessage]] api_router = APIRouter( default_response_class=JSONResponse, responses={ 400: {"model": ErrorResponse}, 401: {"model": ErrorResponse}, 403: {"model": ErrorResponse}, 404: {"model": ErrorResponse}, 500: {"model": ErrorResponse}, }, ) @api_router.get("/healthcheck", include_in_schema=False) def healthcheck(): return {"status": "ok"} authenticated_api_router = APIRouter( dependencies=[Depends(JWTBearer())], ) # overhaul data authenticated_api_router.include_router( overhaul_router, prefix="/overhauls", tags=["overhaul"] ) # authenticated_api_router.include_router(job_router, prefix="/jobs", tags=["job"]) # # # Overhaul session data # authenticated_api_router.include_router( # scope_router, prefix="/overhaul-session", tags=["overhaul-session"] # ) authenticated_api_router.include_router( standard_scope_router, prefix="/scope-equipments", tags=["scope_equipment"] ) authenticated_api_router.include_router( overhaul_activity_router, prefix="/overhaul-activity", tags=["activity"] ) authenticated_api_router.include_router( workscope_group_router, prefix="/workscopes", tags=["workscope_groups"] ) authenticated_api_router.include_router( sparepart_router, prefix="/spareparts", tags=["sparepart"] ) authenticated_api_router.include_router( equipment_workscope_group_router, prefix="/equipment-workscopes", tags=["equipment_workscope_groups"], ) authenticated_api_router.include_router( equipment_sparepart_router, prefix="/equipment-spareparts", tags=["equipment_workscope_sparepart_router"] ) # authenticated_api_router.include_router( # scope_equipment_job_router, # prefix="/scope-equipment-jobs", # tags=["scope_equipment", "job"], # ) # authenticated_api_router.include_router( # overhaul_schedule_router, # prefix="/overhaul-schedules", # tags=["overhaul_schedule"], # ) # authenticated_api_router.include_router( # job_overhaul_router, prefix="/overhaul-jobs", tags=["job", "overhaul"] # ) authenticated_api_router.include_router( gantt_router, prefix="/overhaul-gantt", tags=["gantt"] ) # authenticated_api_router.include_router( # overhaul_history_router, prefix="/overhaul-history", tags=["overhaul_history"] # ) # authenticated_api_router.include_router( # scope_equipment_activity_router, prefix="/equipment-activities", tags=["scope_equipment_activities"] # ) # authenticated_api_router.include_router( # activity_router, prefix="/activities", tags=["activities"] # ) # authenticated_api_router.include_router( # scope_equipment_part_router, prefix="/equipment-parts", tags=["scope_equipment_parts"] # ) # authenticated_api_router.include_router( # ovehaul_schedule_router, prefix="/overhaul-schedules", tags=["overhaul_schedules"] # ) # calculation calculation_router = APIRouter(prefix="/calculation", tags=["calculations"]) # Time constrains calculation_router.include_router( calculation_time_constrains_router, prefix="/time-constraint", tags=["calculation", "time_constraint"], ) # Target reliability calculation_router.include_router( calculation_target_reliability, prefix="/target-reliability", tags=["calculation", "target_reliability"], ) # # Budget Constrain calculation_router.include_router( calculation_budget_constraint, prefix="/budget-constraint", tags=["calculation", "budget_constraint"], ) authenticated_api_router.include_router(calculation_router) api_router.include_router(authenticated_api_router)