# Domain 11 — Notifications

← Database Model

### `notifications` [CORE] #

Role: In-app notifications (no push at launch); `data_json` carries a typed payload for front-end navigation. Why polled, not pushed: push is out of MVP scope; a retention job hard-deletes read notifications older than 90 days to bound growth. Fields unchanged. Relations: N:1 → `users`.

### `support_alerts` [CORE] #

Role: Internal-only alerts (low ratings, EVV no-shows, expired verification steps, EVV location mismatch, payment anomalies), with an owner and resolution trail. Why distinct from notifications: these are staff worklist items, never shown to users. Fields unchanged. Relations: polymorphic (`entity_type`,`entity_id`) — validated at the application layer; consider nullable typed FKs (`booking_id`,`review_id`) for the common cases.

↑ Back to top