from fastapi import APIRouter from schemas.ApiResponse import ApiResponse from schemas.CreateSchemas import ClinicDoctorCreate from schemas.UpdateSchemas import ClinicDoctorUpdate from services.clinicDoctorsServices import ClinicDoctorsServices from fastapi import Request from utils.constants import DEFAULT_ORDER, DEFAULT_ORDER_BY, DEFAULT_PAGE, DEFAULT_LIMIT router = APIRouter() @router.get("/") async def get_clinic_doctors( limit:int= DEFAULT_LIMIT, page:int = DEFAULT_PAGE, search:str = "", sort_by:str = DEFAULT_ORDER, sort_order:str = DEFAULT_ORDER_BY ): if page < 1: page = 1 offset = (page - 1) * limit clinic_doctors = await ClinicDoctorsServices().get_clinic_doctors(limit, offset, search, sort_by, sort_order) return ApiResponse(data=clinic_doctors, message="Clinic doctors retrieved successfully") @router.post("/") async def create_clinic_doctor(req:Request, clinic_doctor: ClinicDoctorCreate): await ClinicDoctorsServices().create_clinic_doctor(req.state.user, clinic_doctor) return ApiResponse(data="OK", message="Clinic doctor created successfully") @router.put("/{clinic_doctor_id}") async def update_clinic_doctor(req:Request, clinic_doctor_id: int, clinic_doctor: ClinicDoctorUpdate): await ClinicDoctorsServices().update_clinic_doctor(req.state.user, clinic_doctor_id, clinic_doctor) return ApiResponse(data="OK", message="Clinic doctor updated successfully") @router.delete("/{clinic_doctor_id}") async def delete_clinic_doctor(clinic_doctor_id: int): await ClinicDoctorsServices().delete_clinic_doctor(clinic_doctor_id) return ApiResponse(data="OK", message="Clinic doctor deleted successfully")