Domain 9 — Messaging (Ticket System)

← Database Model

tickets / ticket_participants / ticket_messages [CORE]

Role: All post-booking communication, admin-readable, with no direct nurse↔customer channel. Why intentionally constrained: it protects vulnerable patients, creates dispute evidence, and prevents disintermediation (families and nurses pairing off-platform). ticket_messages.is_internal keeps admin-only notes out of user view. reference_code is the human-facing support id. On-site emergencies stay an operational playbook ("call the emergency contact from the app, then open a ticket") — surfaced prominently in the booking UI; no schema change, but documented so nurses don't seek the family's number off-platform. Fields unchanged; UNIQUE(ticket_id, user_id) on participants. Relations: tickets 1:N ticket_participants/ticket_messages; tickets optionally ↔ bookings, refunds.

↑ Back to top