Data Layer medium complexity backend
0
Dependencies
0
Dependents
0
Entities
0
Integrations

Description

Manages all persistence operations for workshop entities including workshops, participants, attendance records, and session notes. Provides typed query methods that abstract the underlying database layer and support the service tier with efficient data access patterns.

Feature: Career Workshops

workshop-repository

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 358
    Mentorordning / 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

  • Persist and retrieve workshop records with full metadata
  • Store and query participant lists and attendance records per workshop
  • Save, update, and fetch workshop session notes linked to participants
  • Support filtered queries by date range, status, coordinator, and participant
  • Handle transactional writes for multi-entity workshop operations

Interfaces

findById(workshopId: string): Promise<Workshop | null>
findByCoordinator(coordinatorId: string): Promise<Workshop[]>
findByParticipant(userId: string): Promise<Workshop[]>
save(workshop: Workshop): Promise<Workshop>
addParticipant(workshopId: string, userId: string): Promise<void>
saveNote(note: WorkshopNote): Promise<WorkshopNote>
getNotesByWorkshop(workshopId: string): Promise<WorkshopNote[]>