fic doctor mogin/logout buttons in manage doctor
Title: Include Doctor Login/Logout Status in /doctors API
Description:
The frontend requires login_time and logout_time for each doctor to correctly determine availability and button states. Previously, this data was not included in the /doctors API, causing UI inconsistencies.
Problem:
-
/doctorsAPI did not include attendance data - Frontend could not determine login state after refresh
- Required temporary frontend cache hacks
Solution Implemented:
- Fetch
CampVisitrecords for active medical camp - Filter by
CampRoleEnum.doctor - Map visits using
user_idto avoid N+1 queries - Attach
login_timeandlogout_timeto each doctor in response
Tasks:
-
Ensure
/doctorsAPI returns:login_timelogout_time
-
Fetch only latest visit per doctor for active camp
-
Optimize query to avoid N+1 issues (use mapping/dictionary)
-
Maintain clean schema compatibility with frontend
-
Handle edge cases:
- No visit → both fields null
- Multiple visits → return latest
Expected Response Example: { "id": "doctor_id", "doctor_name": "Dr. X", "login_time": "timestamp | null", "logout_time": "timestamp | null" }
Acceptance Criteria:
- API returns correct attendance data for each doctor
- Works efficiently (no N+1 queries)
- Frontend reflects correct state after refresh
- Supports active camp filtering
Priority: High