WorkshopService
Component Detail
Service Layer
medium complexity
backend
0
Dependencies
0
Dependents
1
Entities
0
Integrations
Description
Encapsulates all business logic for the workshop lifecycle including creation, updates, status transitions, and validation rules. Mediates between the UI layer and the repository, enforcing domain constraints such as two-day scheduling invariants and coordinator ownership.
workshop-service
Sources & reasoning
Line 100 names the mentorordning with three explicit sub-capabilities for two-day group sessions, establishing Career Workshops as the parent entity. Line 357 places it in Fase 3 under vekst og engasjement, which maps to v1.1 by ordinal (third phase). Career Workshops is the root session record that the other workshop features depend on.
-
docs/source/likeperson.md · line 100**Mentorordning (karriereverksted):** Eget notatverktøy, to-do-lister og deltakerlister for gruppeveiledning over to dager.
-
docs/source/likeperson.md · line 357Mentorordning / Career Workshops (Blindeforbundet)
Responsibilities
- Create new workshop sessions with validated metadata and default status
- Update workshop fields while enforcing business rules (e.g. no edits after completion)
- Manage status transitions with allowed-state guards
- Resolve and assemble composite workshop detail including linked entities
- Emit events or notifications on status change where required
Interfaces
createWorkshop(data: CreateWorkshopDto): Promise<Workshop>
updateWorkshop(workshopId: string, data: UpdateWorkshopDto): Promise<Workshop>
setStatus(workshopId: string, status: WorkshopStatus): Promise<Workshop>
getWorkshop(workshopId: string): Promise<WorkshopDetail>
listWorkshops(coordinatorId: string, filter?: WorkshopFilter): Promise<Workshop[]>