From d694dafa8f9c0dfd2a0d0501d1647f623dc8f4bf Mon Sep 17 00:00:00 2001 From: Cizz22 Date: Mon, 9 Feb 2026 10:46:28 +0700 Subject: [PATCH] feat: Enable overhaul schedule CRUD operations by uncommenting Pydantic schemas and API endpoints, and adding placeholder service functions. --- src/aeros_project/router.py | 70 ++++++++++++++++++------------------ src/aeros_project/schema.py | 49 +++++++++++++------------ src/aeros_project/service.py | 18 +++++++++- 3 files changed, 76 insertions(+), 61 deletions(-) diff --git a/src/aeros_project/router.py b/src/aeros_project/router.py index 27baaed..6590867 100644 --- a/src/aeros_project/router.py +++ b/src/aeros_project/router.py @@ -13,8 +13,8 @@ from src.database.core import DbSession from src.database.service import CommonParameters from src.models import StandardResponse -from .schema import AerosProjectInput, AerosMetadata -from .service import import_aro_project, fetch_aro_record, reset_project +from .schema import AerosProjectInput, AerosMetadata, OverhaulScheduleCreate, OverhaulScheduleUpdate +from .service import import_aro_project, fetch_aro_record, reset_project, create, update, delete router = APIRouter() @@ -122,36 +122,36 @@ async def reset_aeros_project(db_session: DbSession): # } -# @router.post("", response_model=StandardResponse[None]) -# async def create_overhaul_equipment_jobs( -# db_session: DbSession, overhaul_job_in: OverhaulScheduleCreate -# ): -# await create( -# db_session=db_session, -# overhaul_job_in=overhaul_job_in, -# ) - -# return StandardResponse( -# data=None, -# message="Data created successfully", -# ) - -# @router.put("/{overhaul_job_id}", response_model=StandardResponse[None]) -# async def update_overhaul_schedule( -# db_session: DbSession, overhaul_job_id: str, overhaul_job_in: OverhaulScheduleUpdate -# ): -# await update(db_session=db_session, overhaul_schedule_id=overhaul_job_id, overhaul_job_in=overhaul_job_in) - -# return StandardResponse( -# data=None, -# message="Data updated successfully", -# ) - -# @router.delete("/{overhaul_job_id}", response_model=StandardResponse[None]) -# async def delete_overhaul_equipment_job(db_session: DbSession, overhaul_job_id): -# await delete(db_session=db_session, overhaul_schedule_id=overhaul_job_id) - -# return StandardResponse( -# data=None, -# message="Data deleted successfully", -# ) +@router.post("/overhaul_job", response_model=StandardResponse[None]) +async def create_overhaul_equipment_jobs( + db_session: DbSession, overhaul_job_in: OverhaulScheduleCreate +): + await create( + db_session=db_session, + overhaul_job_in=overhaul_job_in, + ) + + return StandardResponse( + data=None, + message="Data created successfully", + ) + +@router.post("/update/{overhaul_job_id}", response_model=StandardResponse[None]) +async def update_overhaul_schedule( + db_session: DbSession, overhaul_job_id: str, overhaul_job_in: OverhaulScheduleUpdate +): + await update(db_session=db_session, overhaul_schedule_id=overhaul_job_id, overhaul_job_in=overhaul_job_in) + + return StandardResponse( + data=None, + message="Data updated successfully", + ) + +@router.post("/delete/{overhaul_job_id}", response_model=StandardResponse[None]) +async def delete_overhaul_equipment_job(db_session: DbSession, overhaul_job_id: str): + await delete(db_session=db_session, overhaul_schedule_id=overhaul_job_id) + + return StandardResponse( + data=None, + message="Data deleted successfully", + ) diff --git a/src/aeros_project/schema.py b/src/aeros_project/schema.py index cacd4c7..94509d7 100644 --- a/src/aeros_project/schema.py +++ b/src/aeros_project/schema.py @@ -7,8 +7,8 @@ from pydantic import Field from src.models import DefultBase, Pagination -# class OverhaulScheduleBase(DefultBase): -# pass +class OverhaulScheduleBase(DefultBase): + pass class AerosProjectBase(DefultBase): @@ -25,31 +25,30 @@ class AerosMetadata(AerosProjectBase): updated_at: datetime -# class OverhaulScheduleCreate(OverhaulScheduleBase): -# year: int -# plan_duration: Optional[int] = Field(None) -# planned_outage: Optional[int] = Field(None) -# actual_shutdown: Optional[int] = Field(None) -# start: datetime -# finish: datetime -# remark: Optional[str] = Field(None) - +class OverhaulScheduleCreate(OverhaulScheduleBase): + year: int + plan_duration: Optional[int] = Field(None) + planned_outage: Optional[int] = Field(None) + actual_shutdown: Optional[int] = Field(None) + start: datetime + finish: datetime + remark: Optional[str] = Field(None) -# class OverhaulScheduleUpdate(OverhaulScheduleBase): -# start: datetime -# finish: datetime +class OverhaulScheduleUpdate(OverhaulScheduleBase): + start: datetime + finish: datetime -# class OverhaulScheduleRead(OverhaulScheduleBase): -# id: UUID -# year: int -# plan_duration: Optional[int] -# planned_outage: Optional[int] -# actual_shutdown: Optional[int] -# start: datetime -# finish: datetime -# remark: Optional[str] +class OverhaulScheduleRead(OverhaulScheduleBase): + id: UUID + year: int + plan_duration: Optional[int] + planned_outage: Optional[int] + actual_shutdown: Optional[int] + start: datetime + finish: datetime + remark: Optional[str] -# class OverhaulSchedulePagination(Pagination): -# items: List[OverhaulScheduleRead] = [] +class OverhaulSchedulePagination(Pagination): + items: List[OverhaulScheduleRead] = [] diff --git a/src/aeros_project/service.py b/src/aeros_project/service.py index 201778b..c244b4f 100644 --- a/src/aeros_project/service.py +++ b/src/aeros_project/service.py @@ -17,7 +17,7 @@ import clamd import io from .model import AerosProject -from .schema import AerosProjectInput +from .schema import AerosProjectInput, OverhaulScheduleCreate, OverhaulScheduleUpdate import asyncio ALLOWED_EXTENSIONS = {".aro"} MAX_FILE_SIZE = 100 * 1024 * 1024 # 100MB @@ -236,3 +236,19 @@ async def reset_project(*, db_session: DbSession): ) return project.aro_file_path + + +async def create(*, db_session: DbSession, overhaul_job_in: OverhaulScheduleCreate): + # Placeholder for creation logic + print(f"create overhaul job called: {overhaul_job_in}") + pass + +async def update(*, db_session: DbSession, overhaul_schedule_id: str, overhaul_job_in: OverhaulScheduleUpdate): + # Placeholder for update logic + print(f"update overhaul job called for id {overhaul_schedule_id}: {overhaul_job_in}") + pass + +async def delete(*, db_session: DbSession, overhaul_schedule_id: str): + # Placeholder for delete logic + print(f"delete overhaul job called for id {overhaul_schedule_id}") + pass