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.

Feature: Career Workshops

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.

  • **Mentorordning (karriereverksted):** Eget notatverktøy, to-do-lister og deltakerlister for gruppeveiledning over to dager.
  • Mentorordning / 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[]>

Related Data Entities (1)

Data entities managed by this component