Duplicate Detection BLoC
API Contract
REST
/api/v1/duplicate-events
5 endpoints
GET
/api/v1/duplicate-events/api/v1/duplicate-events
List all duplicate detection events
Public
Response Example
{
"data": [
{
"id": "evt-5501",
"event_type": "check",
"peer_id": "peer-0091",
"activity_type_id": "act-type-03",
"date": "2026-03-20",
"dispatched_at": "2026-03-25T10:00:00Z",
"state": "duplicate_found"
},
{
"id": "evt-5502",
"event_type": "merge",
"peer_id": "peer-0091",
"activity_type_id": "act-type-03",
"date": "2026-03-20",
"dispatched_at": "2026-03-25T11:15:00Z",
"state": "resolved"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 2
}
}
GET
/api/v1/duplicate-events/api/v1/duplicate-events/:id
Get a specific BLoC event
Public
Response Example
{
"id": "evt-5501",
"event_type": "check",
"peer_id": "peer-0091",
"activity_type_id": "act-type-03",
"date": "2026-03-20",
"draft_activity": {
"title": "Peer Support Session",
"duration_minutes": 60,
"location": "Room 4B"
},
"dispatched_at": "2026-03-25T10:00:00Z",
"state": "duplicate_found",
"duplicate_check_id": "dc-7841"
}
POST
/api/v1/duplicate-events/api/v1/duplicate-events
Dispatch a BLoC event
Public
Request Example
{
"event_type": "check",
"peer_id": "peer-0091",
"activity_type_id": "act-type-03",
"date": "2026-03-26",
"draft_activity": {
"title": "Group Facilitation",
"duration_minutes": 90,
"location": "Community Hall"
}
}
Response Example
{
"id": "evt-5503",
"event_type": "check",
"peer_id": "peer-0091",
"activity_type_id": "act-type-03",
"date": "2026-03-26",
"dispatched_at": "2026-03-26T09:00:00Z",
"state": "checking",
"duplicate_check_id": "dc-7846"
}
PUT
/api/v1/duplicate-events/api/v1/duplicate-events/:id
Update event state or annotation
Public
Request Example
{
"annotation": "Coordinator reviewed and approved merge.",
"state": "resolved"
}
Response Example
{
"id": "evt-5501",
"event_type": "check",
"state": "resolved",
"annotation": "Coordinator reviewed and approved merge.",
"last_updated_at": "2026-03-26T09:30:00Z"
}
DELETE
/api/v1/duplicate-events/api/v1/duplicate-events/:id
Cancel an in-flight event
Public
Response Example
{
"message": "Event evt-5501 cancelled and removed from processing queue."
}