Wrapped Summary BLoC
API Contract
REST
/api/v1/wrapped-summaries
5 endpoints
GET
/api/v1/wrapped-summaries/api/v1/wrapped-summaries
List all wrapped summary states (admin/debug view)
Public
Response Example
{
"data": [
{
"mentor_id": "mentor_001",
"current_period": {
"year": 2025,
"start_date": "2025-01-01",
"end_date": "2025-12-31"
},
"state": "loaded",
"current_slide_index": 0,
"last_loaded_at": "2026-01-06T08:00:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 1
}
}
GET
/api/v1/wrapped-summaries/api/v1/wrapped-summaries/:mentor_id
Get the current wrapped summary state for a mentor
Public
Response Example
{
"mentor_id": "mentor_001",
"state": "loaded",
"current_period": {
"year": 2025,
"start_date": "2025-01-01",
"end_date": "2025-12-31"
},
"current_slide_index": 2,
"summary": {
"total_hours": 312.5,
"unique_contacts_helped": 47,
"activity_count": 198,
"activity_type_breakdown": [
{
"activity_type": "one_on_one",
"count": 120,
"hours": 180,
"percentage": 57.6
}
]
},
"milestones_achieved": 3,
"last_loaded_at": "2026-01-06T08:00:00Z"
}
POST
/api/v1/wrapped-summaries/api/v1/wrapped-summaries
Load a wrapped summary for a mentor and period
Public
Request Example
{
"mentor_id": "mentor_001",
"period": {
"year": 2025,
"start_date": "2025-01-01",
"end_date": "2025-12-31"
}
}
Response Example
{
"mentor_id": "mentor_001",
"state": "loaded",
"current_period": {
"year": 2025,
"start_date": "2025-01-01",
"end_date": "2025-12-31"
},
"current_slide_index": 0,
"summary": {
"total_hours": 312.5,
"unique_contacts_helped": 47,
"activity_count": 198,
"activity_type_breakdown": [
{
"activity_type": "one_on_one",
"count": 120,
"hours": 180,
"percentage": 57.6
}
]
},
"milestones_achieved": 3,
"last_loaded_at": "2026-01-06T08:00:00Z"
}
PUT
/api/v1/wrapped-summaries/api/v1/wrapped-summaries/:mentor_id
Change the active period for a mentor's wrapped summary
Public
Request Example
{
"period": {
"year": 2024,
"start_date": "2024-01-01",
"end_date": "2024-12-31"
}
}
Response Example
{
"mentor_id": "mentor_001",
"state": "loaded",
"current_period": {
"year": 2024,
"start_date": "2024-01-01",
"end_date": "2024-12-31"
},
"current_slide_index": 0,
"summary": {
"total_hours": 240,
"unique_contacts_helped": 35,
"activity_count": 155,
"activity_type_breakdown": [
{
"activity_type": "one_on_one",
"count": 95,
"hours": 142.5,
"percentage": 59.4
}
]
},
"milestones_achieved": 2,
"last_loaded_at": "2026-01-06T08:10:00Z"
}
DELETE
/api/v1/wrapped-summaries/api/v1/wrapped-summaries/:mentor_id
Clear a mentor's loaded wrapped summary state
Public
Response Example
{
"deleted": true,
"mentor_id": "mentor_001"
}