core PK: id 11 required 1 unique

Description

A structured group mentoring session within the Mentor Program area, used by coordinators and facilitators to organize career workshops with participant lists, notes, and to-do items.

19
Attributes
5
Indexes
6
Validation Rules
9
CRUD Operations

Data Structure

Name Type Description Constraints
id uuid Primary key
PKrequiredunique
organization_id uuid FK to organizations — the organization hosting this workshop
required
facilitator_id uuid FK to users — the coordinator or facilitator running the workshop
required
title string Workshop title or name
required
description text Detailed description of the workshop content and goals
-
workshop_type enum Type of workshop session
required
status enum Current lifecycle status of the workshop
required
scheduled_start_at datetime Planned start date and time of the workshop
required
scheduled_end_at datetime Planned end date and time of the workshop
-
actual_start_at datetime Actual start time when the workshop began
-
actual_end_at datetime Actual end time when the workshop concluded
-
location string Physical or virtual location of the workshop
-
is_virtual boolean Whether the workshop is held virtually (video call, etc.)
required
max_participants integer Maximum number of participants allowed; null means unlimited
-
duration_days integer Number of days the workshop spans (e.g. 2 for Blindeforbundet two-day sessions)
-
agenda text Structured agenda or session plan for the workshop
-
is_archived boolean Soft-delete flag; archived workshops are hidden from default views
required
created_at datetime Record creation timestamp
required
updated_at datetime Record last-updated timestamp
required

Database Indexes

idx_mentor_workshops_organization_id
btree

Columns: organization_id

idx_mentor_workshops_facilitator_id
btree

Columns: facilitator_id

idx_mentor_workshops_scheduled_start_at
btree

Columns: scheduled_start_at

idx_mentor_workshops_organization_status
btree

Columns: organization_id, status

idx_mentor_workshops_organization_scheduled
btree

Columns: organization_id, scheduled_start_at

Validation Rules

title_required_non_empty error

Validation failed

end_after_start error

Validation failed

valid_status_transition error

Validation failed

duration_days_positive error

Validation failed

facilitator_belongs_to_organization error

Validation failed

max_participants_positive_integer error

Validation failed

Business Rules

only_coordinator_or_facilitator_can_create
on_create

Only users with Coordinator or higher role within the organization may create workshops. Peer Mentors are participants, not creators.

Enforced by: WorkshopService
organization_scope_isolation
always

A workshop belongs to exactly one organization. Users from other organizations cannot read, update, or delete it.

Enforced by: WorkshopService
max_participants_capacity_check
on_create

When max_participants is set, the workshop participant count must not exceed it. Attempting to add a participant beyond capacity is rejected.

completed_workshop_immutable
on_update

Once a workshop status is set to 'completed' or 'cancelled', core fields (scheduled_start_at, facilitator_id, organization_id) cannot be modified.

Enforced by: WorkshopService
cascade_archive_on_organization_deactivation
on_update

When an organization is deactivated, all its workshops are soft-archived (is_archived = true) rather than deleted.

Enforced by: WorkshopService
mentor_program_module_required
always

Creating or accessing workshops requires the mentor-program module to be enabled for the organization. Disabled module returns 403.

Storage Configuration

Storage Type
primary_table
Location
main_db
Partitioning
No Partitioning
Retention
Permanent Storage