WP-05 Booking and agenda
Load AGENTS.md, contracts.md, and this file. Tech specs: api/booking.md, app/booking.md, exchange/booking.md. Implement only when the user asks and WP-01, WP-02, and WP-03 have landed.
Group G2. May run beside WP-07.
Owns
afia-api/src/main/java/health/afia/app/patient/appointment/afia-api/src/test/java/health/afia/app/patient/appointment/afia-api/src/main/java/health/afia/app/clinician/agenda/afia-api/src/test/java/health/afia/app/clinician/agenda/afia-app/lib/presentation/patient/booking/afia-app/lib/presentation/clinician/agenda/afia-app/lib/data/booking/afia-app/lib/domain/booking/
Features: F-02 book an appointment, F-06 see own patients, F-08 clinician agenda.
Reserved paths: /api/v1/afia/appointments, /api/v1/afia/clinician/agenda, /api/v1/afia/clinician/patients.
Must not write
EndpointUri.java,api_config.dart,docs/api-map.md- Profile packages, encounter notes, or diagnostics
- A second appointment table in clinician
Depends on
WP-01, WP-02, WP-03. One Appointment row joins PatientProfile and ClinicianProfile.
Done when
- A patient can list and request appointments on
/api/v1/afia/appointments. - A clinician can read the day agenda on
/api/v1/afia/clinician/agenda. /api/v1/afia/clinician/patientslists patients who have an appointment with that clinician. It does not copy patient profile storage.Appointmentmatches contracts.md. One table. Two HTTP faces.- Tests cover patient write and clinician read of the same row.
cd afia-api && mvn testpasses.cd afia-app && flutter testpasses.
Do not invent screens
Landing copy is "prenez rendez-vous", "gérez vos patients", and "votre agenda". Those are capabilities. Do not name calendar widgets from Stitch.