ai-agent / endpoints_documentation.py
abdibrahem's picture
Update docs
f5e9d3f
raw
history blame
12.9 kB
# endpoints_documentation = {
# "root": {
# "path": "/",
# "method": "GET",
# "description": "API root endpoint",
# "parameters": None,
# "request_body": None,
# "response": {"message": "Clinic Reservation API - Use /docs for documentation"}
# },
# "get_reservations": {
# "path": "/reservations",
# "method": "GET",
# "description": "Get all reservations",
# "parameters": None,
# "request_body": None,
# "response": {
# "description": "List of all reservations",
# "model": "List[Reservation]",
# "filters": "Only returns reservations with status 'scheduled'"
# }
# },
# "get_reservations_by_filters": {
# "path": "/reservations/",
# "method": "GET",
# "description": "Get reservations filtered by patient ID and/or doctor name (only scheduled)",
# "parameters": {
# "patient_id": {
# "type": "str",
# "required": False,
# "description": "Filter by patient ID"
# },
# "doctor_name": {
# "type": "str",
# "required": False,
# "description": "Filter by doctor name (case-insensitive partial match)"
# }
# },
# "request_body": None,
# "response": {
# "description": "List of matching scheduled reservations",
# "model": "List[Reservation]",
# "error": "404 if no scheduled reservations match criteria"
# }
# },
# "create_reservation": {
# "path": "/create-reservation",
# "method": "POST",
# "description": "Create a new reservation",
# "parameters": None,
# "request_body": {
# "model": "CreateReservation",
# "required_fields": {
# "patient_id": "str",
# "doctor_name": "str",
# "date_time": "datetime like this 2023-10-16T19:00:00"
# },
# "optional_fields": {
# "reason": "str (optional)"
# }
# },
# "response": {
# "description": "Created reservation with status 'scheduled'",
# "model": "Reservation",
# "error": "404 if doctor not found"
# }
# },
# "reschedule_reservation": {
# "path": "/reservations/reschedule",
# "method": "PUT",
# "description": "Reschedule an existing reservation",
# "parameters": {
# "doctor_name": {
# "type": "str",
# "required": True,
# "description": "ID of the reservation to reschedule"
# },
# "new_date_time": {
# "type": "str",
# "required": True,
# "description": "New date/time to reschedule to"
# }
# },
# "response": {
# "description": "Updated reservation with new date/time",
# "model": "Reservation",
# "error": "404 if reservation not found"
# }
# },
# "cancel_reservation": {
# "path": "/reservations/cancel",
# "method": "PUT",
# "description": "Cancel a reservation",
# "parameters": {
# "doctor_name": {
# "type": "str",
# "required": True,
# "description": "ID of the reservation to cancel"
# }
# },
# "request_body": None,
# "response": {
# "description": "Canceled reservation (status changed to 'canceled')",
# "model": "Reservation",
# "error": "404 if reservation not found"
# }
# },
# "get_doctors": {
# "path": "/doctors",
# "method": "GET",
# "description": "Get list of all available doctors",
# "parameters": None,
# "request_body": None,
# "response": {
# "description": "List of doctors with their specialties",
# "model": "List[dict]",
# "example": [
# {"id": 1, "name": "Dr. Smith", "specialty": "General Medicine"}
# ]
# }
# },
# "get_doctor_availability": {
# "path": "/doctors/{doctor_id}/availability",
# "method": "GET",
# "description": "Get doctor's fake availability slots (30-min intervals from 9am-5pm)",
# "parameters": {
# "doctor_id": {
# "type": "int",
# "required": True,
# "description": "ID of the doctor"
# },
# "date": {
# "type": "str (YYYY-MM-DD)",
# "required": False,
# "description": "Date to check availability (default: today)"
# }
# },
# "request_body": None,
# "response": {
# "description": "Doctor's availability slots with random availability",
# "model": "dict",
# "example": {
# "doctor_id": 1,
# "date": "2023-10-15",
# "slots": [
# {
# "start": "2023-10-15T09:00:00",
# "end": "2023-10-15T09:30:00",
# "available": True
# }
# ]
# },
# "error": "404 if doctor not found"
# }
# },
# "get_patients": {
# "path": "/patients",
# "method": "GET",
# "description": "Get list of all patients",
# "parameters": None,
# "request_body": None,
# "response": {
# "description": "List of patients with contact information",
# "model": "List[Patient]",
# "example": [
# {"id": "uuid-123", "name": "John Doe", "phone": "555-0101", "email": "john@example.com"}
# ]
# }
# },
# "get_patient_reservations": {
# "path": "/patients/reservations",
# "method": "GET",
# "description": "Get my all reservations",
# "parameters": {
# "patient_id": {
# "type": "str",
# "required": True,
# "description": "ID of the patient"
# }
# },
# "request_body": None,
# "response": {
# "description": "List of patient's reservations (all statuses)",
# "model": "List[Reservation]",
# "note": "Returns empty list if no reservations found (no 404 error)"
# }
# },
# "get_hospitals": {
# "path": "/hospitals",
# "method": "GET",
# "description": "Get list of all hospitals and thier working hours (start time and end time) and location",
# "parameters": None,
# }
# }
endpoints_documentation = {
"get_my_reservations": {
"path": "/patients/reservations",
"method": "GET",
"description": "Get my personal reservations/appointments (all statuses)",
"parameters": {
"patient_id": {
"type": "str",
"required": True,
"description": "ID of the patient"
}
},
"response": {
"description": "List of patient's reservations",
"model": "List[Reservation]"
},
"use_case": "When user asks: Tell me my reservations, Show my appointments, قولي حجوزاتي"
},
"get_all_reservations": {
"path": "/reservations",
"method": "GET",
"description": "Get all reservations in the system (admin view)",
"parameters": None,
"response": {
"description": "List of all scheduled reservations",
"model": "List[Reservation]"
},
"use_case": "When admin asks: Show all reservations, Get all appointments"
},
"filter_reservations": {
"path": "/reservations/",
"method": "GET",
"description": "Filter reservations by patient ID or doctor name",
"parameters": {
"patient_id": {
"type": "str",
"required": False,
"description": "Filter by patient ID"
},
"doctor_name": {
"type": "str",
"required": False,
"description": "Filter by doctor name"
}
},
"response": {
"description": "List of matching scheduled reservations",
"model": "List[Reservation]"
},
"use_case": "When user asks: Show reservations with Dr. Smith, Find my reservations with specific doctor"
},
"create_reservation": {
"path": "/create-reservation",
"method": "POST",
"description": "Book a new appointment/reservation",
"request_body": {
"required_fields": {
"patient_id": "str",
"doctor_name": "str",
"date_time": "datetime (2023-10-16T19:00:00)"
},
"optional_fields": {
"reason": "str"
}
},
"response": {
"description": "Created reservation",
"model": "Reservation"
},
"use_case": "When user asks: Book appointment, Schedule meeting, احجز موعد, I want to book with Dr. Smith"
},
"reschedule_reservation": {
"path": "/reservations/reschedule",
"method": "PUT",
"description": "Change appointment date/time",
"parameters": {
"doctor_name": {
"type": "str",
"required": True,
"description": "Doctor name for the reservation"
},
"patient_id": {
"type": "str",
"required": True,
"description": "ID of the patient who wants to reschedule"
}
},
"body": {
"new_date_time": {
"type": "str",
"required": True,
"description": "New date/time to reschedule to (format: YYYY-MM-DDTHH:MM:SS)"
}
},
"response": {
"description": "Updated reservation",
"model": "Reservation"
},
"use_case": "When user asks: Reschedule appointment, Change my appointment time, غير موعدي"
},
"cancel_reservation": {
"path": "/reservations/cancel",
"method": "PUT",
"description": "Cancel an existing appointment",
"parameters": {
"doctor_name": {
"type": "str",
"required": True,
"description": "Doctor name for the reservation to cancel"
},
"patient_id": {
"type": "str",
"required": True,
"description": "ID of the patient who wants to cancel"
}
},
"response": {
"description": "Canceled reservation",
"model": "Reservation"
},
"use_case": "When user asks: Cancel appointment, Cancel my booking, الغي موعدي"
},
"get_doctors": {
"path": "/doctors",
"method": "GET",
"description": "Get list of available doctors and their specialties and Get doctors by department",
"parameters": None,
"response": {
"description": "List of doctors",
"model": "List[Doctor]"
},
"use_case": "When user asks: Show doctors, List available doctors, اظهر الاطباء"
},
"get_doctor_details": {
"path": "/doctor-details",
"method": "GET",
"description": "Get detailed information about a specific doctor and their availability and start and end working times",
"parameters": {
"doctor_name": {
"type": "str",
"required": True,
"description": "Name of the doctor to get details for"
}
},
},
"get_patients": {
"path": "/patients",
"method": "GET",
"description": "Get list of all patients (admin only)",
"parameters": None,
"response": {
"description": "List of patients",
"model": "List[Patient]"
},
"use_case": "When admin asks: Show all patients, List patients"
},
"get_hospitals": {
"path": "/hospitals",
"method": "GET",
"description": "Get list of hospitals with locations and working hours",
"parameters": None,
"response": {
"description": "List of hospitals",
"model": "List[Hospital]"
},
"use_case": "When user asks: Show hospitals, Where are the clinics, اظهر المستشفيات"
}
}