Mentor Status BLoC
API Contract
REST
/api/v1/mentor-status-sync
5 endpoints
GET
/api/v1/mentor-status-sync/api/v1/mentor-status-sync
List pending sync events (for BLoC hydration on app launch)
Public
Response Example
{
"data": [
{
"sync_event_id": "evt_XP2KL9RQ",
"mentor_id": "mntr_01HX4V2K8P",
"event_type": "PauseMentorEvent",
"resulting_status": "paused",
"server_timestamp": "2026-03-26T09:15:00Z",
"acknowledged": false
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 3
}
}
GET
/api/v1/mentor-status-sync/api/v1/mentor-status-sync/:id
Get current status snapshot for a mentor (BLoC initial state)
Public
Response Example
{
"mentor_id": "mntr_01HX4V2K8P",
"status": "active",
"is_eligible_for_assignment": true,
"last_updated": "2026-03-26T09:20:00Z",
"pending_events": []
}
POST
/api/v1/mentor-status-sync/api/v1/mentor-status-sync/events
Submit a BLoC-originated status event from mobile client
Public
Request Example
{
"event_type": "PauseMentorEvent",
"mentor_id": "mntr_01HX4V2K8P",
"reason": "Taking a short break",
"client_timestamp": "2026-03-26T09:14:55Z"
}
Response Example
{
"sync_event_id": "evt_XP2KL9RQ",
"mentor_id": "mntr_01HX4V2K8P",
"event_type": "PauseMentorEvent",
"accepted": true,
"resulting_status": "paused",
"server_timestamp": "2026-03-26T09:15:00Z",
"created_at": "2026-03-26T09:15:00Z"
}
PUT
/api/v1/mentor-status-sync/api/v1/mentor-status-sync/events/:id
Acknowledge or annotate a sync event
Public
Request Example
{
"acknowledged": true,
"reason": "Corrected: extended personal leave"
}
Response Example
{
"sync_event_id": "evt_XP2KL9RQ",
"acknowledged": true,
"reason": "Corrected: extended personal leave",
"updated_at": "2026-03-26T11:00:00Z"
}
DELETE
/api/v1/mentor-status-sync/api/v1/mentor-status-sync/events/:id
Remove a sync event record
Public
Response Example
{
"sync_event_id": "evt_XP2KL9RQ",
"deleted": true,
"deleted_at": "2026-03-26T11:05:00Z"
}