WorkshopTodoService
Component Detail
Service Layer
medium complexity
backend
0
Dependencies
0
Dependents
1
Entities
0
Integrations
Description
Handles all business logic and persistence for workshop to-do items, exposing CRUD operations scoped to a parent workshop session. Enforces that each to-do entry is linked to a valid session and that assignees are registered attendees of that session. Provides the data contract consumed by WorkshopTodoWidget and any future integrations.
workshop-todo-service
Sources & reasoning
Line 100 names "to-do-lister" as one of three explicit sub-capabilities of the mentorordning for two-day group sessions. Direct Blindeforbundet requirement, not inferred. Fase 3 placement confirmed by line 357, mapping to v1.1. Lowest complexity of the four workshop features; depends on Career Workshops as the parent session record.
-
docs/source/likeperson.md · line 100**Mentorordning (karriereverksted):** Eget notatverktøy, to-do-lister og deltakerlister for gruppeveiledning over to dager.
Responsibilities
- Create, read, update, and delete to-do entries linked to a workshop session
- Validate that assignee IDs belong to the session's attendee list before saving
- Return ordered to-do lists with completion status and assignee metadata
- Persist completion state changes and propagate them to the caller
- Guard against orphaned entries when a session is deleted
Interfaces
getTodosForSession(sessionId: string): TodoItem[]
createTodo(sessionId: string, text: string, assigneeId?: string): TodoItem
updateTodo(todoId: string, patch: TodoPatch): TodoItem
markComplete(todoId: string, complete: boolean): TodoItem
deleteTodo(todoId: string): void