Mentor Workshop
Data Entity
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.
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
Columns: organization_id
idx_mentor_workshops_facilitator_id
Columns: facilitator_id
idx_mentor_workshops_scheduled_start_at
Columns: scheduled_start_at
idx_mentor_workshops_organization_status
Columns: organization_id, status
idx_mentor_workshops_organization_scheduled
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
Only users with Coordinator or higher role within the organization may create workshops. Peer Mentors are participants, not creators.
organization_scope_isolation
A workshop belongs to exactly one organization. Users from other organizations cannot read, update, or delete it.
max_participants_capacity_check
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
Once a workshop status is set to 'completed' or 'cancelled', core fields (scheduled_start_at, facilitator_id, organization_id) cannot be modified.
cascade_archive_on_organization_deactivation
When an organization is deactivated, all its workshops are soft-archived (is_archived = true) rather than deleted.
mentor_program_module_required
Creating or accessing workshops requires the mentor-program module to be enabled for the organization. Disabled module returns 403.