WorkshopService
Component Detail
Service Layer
medium complexity
backend
0
Dependencies
0
Dependents
2
Entities
0
Integrations
Description
Encapsulates all business logic for career workshop lifecycle management including creation, scheduling, participant management, and status transitions. Acts as the intermediary between UI screens and the data layer, enforcing coordination rules and validating workshop configurations. Handles notification triggers for workshop events.
workshop-service
Sources & reasoning
Lines 100 and 358 place Career Workshops (Mentorordning/karriereverksted) as a Blindeforbundet-specific feature explicitly listed under Fase 3 (Growth & Engagement). Line 471 confirms it as a named feature in the mentor-program area. Fase 3 is the third development phase, mapping to v1.1 by ordinal convention.
-
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 358Mentorordning / Career Workshops (Blindeforbundet)
-
docs/source/likeperson.md · line 471| mentor-program | Mentor Program | Career Workshops, Workshop Notes, Workshop Participant Lists, Workshop To-Do Lists |
Responsibilities
- Validate and process workshop creation and update requests
- Manage participant enrollment, withdrawal, and attendance state transitions
- Enforce business rules such as capacity limits and scheduling conflicts
- Trigger notifications on workshop creation, updates, and reminders
- Coordinate with WorkshopRepository for persistence and retrieval
Interfaces
createWorkshop(payload: CreateWorkshopPayload): Promise<Workshop>
updateWorkshop(workshopId: string, updates: Partial<Workshop>): Promise<Workshop>
enrollParticipant(workshopId: string, userId: string): Promise<void>
removeParticipant(workshopId: string, userId: string): Promise<void>
getWorkshopsByUser(userId: string, role: UserRole): Promise<Workshop[]>
updateAttendanceStatus(workshopId: string, userId: string, status: AttendanceStatus): Promise<void>
Related Data Entities (2)
Data entities managed by this component