Data Models
Business data architecture — 55 entities across 1 models
Configuration (9)
Per-user accessibility configuration storing screen reader settings, cognitive mode preferences, sensitive field audio warning toggles, and ...
Configuration entity defining a digital badge or recognition title that can be awarded to users based on quantifiable milestones or behavior...
Configuration entity defining the categories of peer mentor activities that can be registered, such as home visits, phone calls, or group se...
Stores device-level biometric enrollment references for users who have registered Face ID or fingerprint authentication after completing the...
Per-organization configuration for external system integrations including Xledger, Dynamics, Cornerstone, Consio, and HLF's Dynamics portal....
Organization-specific terminology overrides replacing default labels throughout the app interface, enabling each member organization to use ...
Per-user device configuration for push notification delivery, including FCM or APNs device tokens, platform type, and per-category notificat...
Configuration entity defining the start and end dates of a Bufdir reporting period for an organization. Organizations may have different per...
Per-user visual theme settings including font scale factor and contrast theme selection (standard or high contrast WCAG 2.2 AA). Used by the...
Core Entities (37)
The primary operational record capturing a single peer mentor activity registration. Each activity records the type, date, duration, associa...
Supporting file attachments linked to an activity, such as event invitations or Facebook screenshots required by NHF for Bufdir audit eviden...
Encrypted task dispatched by a coordinator to a peer mentor, containing sensitive personal information such as name, address, and medical su...
Tracks cumulative assignment counts per peer mentor and records when honorarium threshold milestones are crossed. Used by Blindeforbundet to...
Records a coordinator's batch activity registration on behalf of multiple peer mentors, capturing the shared activity template and the resul...
A peer mentor's earned certification record with validity status, issue and expiry dates, and physical card issuance flag. Certifications ar...
Represents individuals that peer mentors and coordinators work with, including people who receive peer mentor support. Contacts hold standar...
Structured notes attached to a contact record, created by peer mentors or coordinators to document interactions, observations, and follow-up...
Training and certification course offered to peer mentors, with prerequisite requirements, schedule, and seat capacity. Completing a course ...
Records a user's enrollment in a specific course, tracking status, completion, and linking to resulting certifications. Enforces prerequisit...
Records honorarium payments for peer mentors acting as volunteer drivers, capturing driving engagement details, calculated amounts based on ...
Stores metadata for encrypted sensitive documents, particularly assignment payloads and medical records transmitted to peer mentors. Actual ...
A structured group activity with multiple participants, distinct from single-contact activities. Events represent recurring sessions, café m...
Join entity linking users or contacts to events they participated in, enabling participant count aggregation for Bufdir reporting and coordi...
Individual expense line item within a travel expense report, representing a specific type such as mileage, toll, parking, or public transit....
The lowest tier of the organizational hierarchy, representing a local chapter or branch beneath a region. User memberships are held at local...
Tracks peer-to-peer referral events where a user shares a personalized referral link and a new member registers through it. Captures referre...
Records the formal mentorship pairing between an experienced peer mentor and a mentee in Blindeforbundet's structured mentorship scheme. Pai...
Records legally binding non-disclosure agreements signed by peer mentors handling sensitive personal data, particularly at Blindeforbundet f...
Organizational tier directly below the top-level organization, representing a national branch or federation. Groups regions and local associ...
In-app notification records delivered to users, covering assignment alerts, activity reminders, certificate expiry warnings, and gamificatio...
Top-level organizational entity representing a member organization such as NHF, Blindeforbundet, or HLF. Organizations are the root of the h...
Extended profile entity for users who serve as peer mentors, capturing operational attributes including current status, area, assignment cou...
Tracks current and historical availability status of peer mentors, including active, paused, and inactive states with optional pause reasons...
Stores the home area centroid location for a peer mentor with GDPR opt-in consent tracking. Used by coordinators at Blindeforbundet for geog...
Digital or scanned legal documents such as powers of attorney and medical records managed by peer mentors and coordinators. Supports gradual...
Photographic evidence attached to an expense item, captured via device camera or gallery. Stores compressed image storage path and thumbnail...
Mid-level organizational unit grouping multiple local associations under a national association. Regions aggregate activity data for interme...
Tracks the approval lifecycle for a travel expense report, including auto-approved and manually attested decisions with complete audit trail...
Parent entity for a peer mentor's travel reimbursement submission, grouping individual expense items into a single report with overall statu...
Core identity entity representing every person who interacts with the system, including peer mentors, coordinators, and administrators. User...
Records the award of a specific achievement badge to a user, including timestamp and organizational context. Enables the achievements screen...
Join entity linking a user to a specific organization and local association simultaneously. A single user may hold multiple membership recor...
Role assignment record linking a user to a specific role (global admin, organization admin, coordinator, peer mentor) within an organization...
Rich-text notes created during or after a workshop session, capturing coordinator observations, participant outcomes, and follow-up actions....
Join entity recording attendance of contacts or users in a workshop session, with attendance confirmation status. Enables participant list m...
A structured group guidance or career workshop session facilitated by a coordinator or peer mentor, supporting Blindeforbundet's karrierever...
Audit & Tracking (7)
Immutable audit trail entity recording all state changes and field modifications to an activity record over its lifecycle. Used for coordina...
Records each delivery attempt and state transition for an assignment, forming an immutable audit trail from initial dispatch through deliver...
Immutable record confirming that a peer mentor has opened and viewed the decrypted assignment content. Prevents duplicate receipt writes and...
Tracks active authentication sessions for users, including JWT tokens issued by Supabase Auth after login via email/password, BankID, or Vip...
Tracks renewal events for certifications approaching or past expiry, recording the renewal timestamp, new expiry date, and trigger type (use...
Audit record capturing when a coordinator registered an activity on behalf of a peer mentor via proxy reporting, preserving coordinator iden...
Audit log entries for every outbound sync attempt to external systems, capturing connector type, status, records processed, error messages, ...
Derived Data (2)
Generated report snapshots containing aggregated activity and participant statistics for Bufdir grant compliance submission. Scoped to an or...
Computed annual or half-year impact summary for a peer mentor, capturing aggregated metrics such as total hours contributed, unique contacts...
Entity Relationships (87)
| From | Type | To | Description |
|---|---|---|---|
| achievement_badges | Many-to-One | organizations | Achievement badges are defined per organization to reflect their specific recognition programmes |
| achievement_badges | One-to-Many | user_badges | An achievement badge definition may be awarded to many users who meet its quantifiable criteria |
| activities | One-to-Many | activity_documents | Activities may have up to 5 supporting document attachments for Bufdir audit evidence |
| activities | One-to-Many | activity_logs | Every modification to an activity creates an immutable audit log entry |
| activities | Many-to-One | activity_types | Each activity is categorized by a single organization-specific activity type |
| activities | Many-to-One | contacts | An activity is typically linked to the specific contact who received peer mentor support |
| activities | Many-to-One | organizations | Activities are scoped to an organization for RLS enforcement and Bufdir attribution |
| activity_types | Many-to-One | organizations | Activity types are defined per organization to reflect their specific Bufdir reporting categories |
| assignment_dispatches | One-to-Many | assignment_read_receipts | Each dispatch event may generate a read receipt when the recipient views the decrypted content |
| assignment_honorarium_records | Many-to-One | organizations | Honorarium records are scoped to an organization as threshold configurations vary per organization |
| assignments | One-to-Many | assignment_dispatches | An assignment accumulates immutable dispatch records tracking each delivery state transition |
| assignments | Many-to-One | organizations | Assignments are scoped to an organization for RLS enforcement and reporting |
| assignments | Many-to-One | peer_mentors | Each assignment targets a specific peer mentor as the encrypted payload recipient |
| assignments | Many-to-One | users | Each assignment is created and dispatched by a coordinator user |
| bufdir_reports | Many-to-One | report_periods | Each Bufdir report is generated for a specific defined reporting period |
| bulk_registrations | One-to-Many | activities | A bulk registration spawns individual activity records for each selected peer mentor |
| certifications | One-to-Many | certification_renewals | A certification may be renewed multiple times with each renewal creating an immutable audit record |
| certifications | Many-to-One | courses | Each certification is issued upon successful completion of a specific course |
| contacts | One-to-Many | contact_notes | Each contact may have multiple chronological notes documenting interactions and follow-up actions |
| contacts | Many-to-One | organizations | Contacts are scoped to an organization for RLS data isolation and custom field resolution |
| course_enrollments | Many-to-One | users | Each enrollment record belongs to the specific user who enrolled in the course |
| courses | One-to-Many | course_enrollments | A course may have multiple enrolled users up to its configured seat capacity |
| courses | Many-to-One | organizations | Courses are offered by specific organizations and scoped for enrollment eligibility and certificate |
| delegation_grants | Many-to-One | activities | Each delegation grant references the specific activity that was registered by proxy |
| delegation_grants | Many-to-One | users | Each delegation grant records the coordinator who performed the proxy registration |
| delegation_grants | Many-to-One | users | Each delegation grant records the peer mentor on whose behalf the activity was registered |
| driver_honorariums | Many-to-One | assignments | Driver honorariums may be linked to the specific assignment that required the driving engagement |
| driver_honorariums | Many-to-One | organizations | Honorarium records are scoped to an organization as rate configurations vary per organization |
| encrypted_documents | Many-to-One | organizations | Encrypted documents are scoped to an organization for RLS access policy enforcement |
| event_participants | Many-to-One | contacts | Event participants may be linked to contact records for non-user attendees |
| event_participants | Many-to-One | users | Each participant entry may link to a registered user who attended the event |
| events | One-to-Many | event_participants | An event records multiple participant attendance entries for Bufdir participant counting |
| events | Many-to-One | organizations | Events are scoped to an organization for RLS enforcement and Bufdir reporting attribution |
| expense_items | One-to-Many | receipts | Expense items above configured thresholds require one or more photographic receipt attachments |
| integration_configs | One-to-Many | sync_logs | Every sync attempt against an integration configuration creates an audit log entry for monitoring |
| local_associations | Many-to-One | organizations | Local associations are owned by a top-level organization for RLS scoping and Bufdir attribution |
| local_associations | Many-to-One | regions | Local associations belong to a regional tier within the organizational hierarchy |
| member_recruitments | Many-to-One | users | A completed recruitment record links to the newly registered user who signed up via the referral lin |
| mentor_pairings | Many-to-One | organizations | Mentor pairings are scoped to an organization for RLS access control and coordinator oversight |
| mentor_pairings | Many-to-One | peer_mentors | Each pairing references the experienced peer mentor acting as the guide in the mentorship scheme |
| mentor_pairings | Many-to-One | peer_mentors | Each pairing references the newer peer mentor receiving guidance as the mentee |
| national_associations | Many-to-One | organizations | National associations belong to the top-level organization entity |
| nda_agreements | Many-to-One | organizations | NDA agreements are scoped to an organization as templates and legal requirements vary |
| organizations | One-to-Many | bufdir_reports | An organization generates multiple Bufdir reports across different reporting periods |
| organizations | One-to-Many | integration_configs | An organization may have multiple integration configurations for different external accounting and m |
| organizations | One-to-Many | org_labels | Each organization defines its own terminology label overrides for all configurable text keys in the |
| organizations | One-to-Many | report_periods | Each organization defines its own set of Bufdir reporting period boundaries |
| peer_mentors | One-to-Many | certifications | A peer mentor may hold multiple certifications for different courses, with HLF policy gating availab |
| peer_mentors | Many-to-One | organizations | Each peer mentor profile is associated with a primary organization for scoping and reporting |
| peer_mentors | One-to-Many | peer_mentor_availability | A peer mentor has a history of availability status changes tracked for audit and coordinator alerts |
| peer_mentors | One-to-Many | peer_mentor_locations | A peer mentor may have location records with GDPR consent flags for geographic matching at Blindefor |
| poa_documents | Many-to-One | organizations | POA documents are scoped to an organization for access control and compliance tracking |
| regions | Many-to-One | national_associations | Regions aggregate under a national association within the hierarchy |
| regions | Many-to-One | organizations | Regions are scoped to a top-level organization for RLS enforcement |
| travel_expense_reports | One-to-Many | expense_items | Each expense report contains one or more individual expense line items of different types |
| travel_expense_reports | Many-to-One | organizations | Expense reports are scoped to an organization for approval routing and accounting system sync |
| travel_expense_reports | One-to-One | reimbursement_approvals | Each expense report has exactly one approval record tracking its auto-approval or manual attestation |
| user_badges | Many-to-One | users | Each user badge award is associated with the specific user who earned it |
| user_organization_memberships | Many-to-One | local_associations | Each membership is associated with a specific local association within the organization |
| user_organization_memberships | Many-to-One | organizations | Each membership record is scoped to a specific top-level organization |
| users | One-to-One | accessibility_preferences | Each user has one accessibility preferences record configuring their WCAG 2.2 AA accessibility setti |
| users | One-to-Many | activities | A user registers multiple activity records over their lifecycle as a peer mentor |
| users | One-to-Many | assignment_honorarium_records | A peer mentor accrues honorarium threshold records as assignment counts cross configured milestones |
| users | One-to-Many | auth_sessions | A user may have multiple active sessions across different devices and auth providers |
| users | One-to-Many | biometric_credentials | A user may have biometric credentials enrolled on multiple devices |
| users | One-to-Many | bulk_registrations | A coordinator creates bulk registrations on behalf of multiple peer mentors |
| users | One-to-Many | certifications | A user may hold multiple certifications for different courses with independent validity periods |
| users | One-to-Many | contacts | A user maintains a list of contacts they work with as a peer mentor or coordinator |
| users | One-to-Many | driver_honorariums | A peer mentor acting as a volunteer driver receives multiple honorarium records over time |
| users | One-to-Many | encrypted_documents | A user may own multiple encrypted documents containing sensitive personal data for assignment delive |
| users | One-to-Many | events | A user creates group event records representing multi-participant activities |
| users | One-to-Many | impact_summaries | A peer mentor receives annual and half-year impact summaries recognizing their volunteer contributio |
| users | One-to-Many | member_recruitments | A user generates referral links and accumulates peer-to-peer recruitment attribution records |
| users | One-to-Many | nda_agreements | A peer mentor may sign multiple NDA agreements as document versions are updated over time |
| users | One-to-Many | notifications | A user receives multiple in-app and push notifications across all scenario categories |
| users | One-to-One | peer_mentors | Each peer mentor has exactly one extended peer mentor profile linked to their user account |
| users | One-to-Many | poa_documents | A user manages multiple legal documents such as powers of attorney across their tenure |
| users | One-to-Many | push_notification_configs | A user may have push notification configurations registered across multiple devices |
| users | One-to-One | theme_configs | Each user has one theme configuration record controlling font scale and contrast theme selection |
| users | One-to-Many | travel_expense_reports | A user submits multiple travel expense reports over their tenure as a peer mentor |
| users | One-to-Many | user_organization_memberships | A user may belong to multiple local associations simultaneously across one or more organizations |
| users | One-to-Many | user_roles | A user may hold multiple role assignments across different organizational contexts |
| workshop_participants | Many-to-One | contacts | Workshop participants are linked to contact records representing the attendees |
| workshop_sessions | Many-to-One | organizations | Workshop sessions are scoped to an organization for access control and aggregate Bufdir reporting |
| workshop_sessions | Many-to-One | users | Each workshop session is created and facilitated by a coordinator user |
| workshop_sessions | One-to-Many | workshop_notes | Each workshop session may accumulate multiple note entries created during or after the session |
| workshop_sessions | One-to-Many | workshop_participants | A workshop session tracks attendance for multiple participants with confirmation status |