public.benefit_reservations
Synced from
docs/generated/erd/— do not hand-edit.
Regenerate withbun run docs:erd(needs staging reader), then this script runs automatically.
Labels:docs/db/erd-table-labels.yml· Runbook:docs/runbooks/erd-schema-docs.md
Description
Section titled “Description”Holds placed against entitlements before fulfilment (expiring reservations) — Not: benefit_usage — a reservation is not yet consumption
Columns
Section titled “Columns”| Name | Type | Default | Nullable | Children | Parents | Comment |
|---|---|---|---|---|---|---|
| created_at | timestamp with time zone | now() | false | |||
| entitlement_id | uuid | false | public.entitlements | |||
| expires_at | timestamp with time zone | true | ||||
| id | uuid | gen_random_uuid() | false | public.benefit_usage | ||
| org_id | text | ‘’::text | false | organizations |
||
| quantity | integer | 1 | false | |||
| reserved_for_id | text | true | ||||
| reserved_for_type | text | ‘event’::text | false | |||
| status | text | ‘pending’::text | false | |||
| updated_at | timestamp with time zone | now() | false |
Viewpoints
Section titled “Viewpoints”| Name | Definition |
|---|---|
| Sponsorships | Sponsorship offerings and bookings, event sponsor slots/fulfillment, sponsor impressions/placements, package benefits. Catalog §2.3. (Table names on staging: sponsorships / sponsorship_offerings — not sponsorship_inventory from older prose.) |
Constraints
Section titled “Constraints”| Name | Type | Definition |
|---|---|---|
| benefit_reservations_entitlement_id_fkey | FOREIGN KEY | FOREIGN KEY (entitlement_id) REFERENCES entitlements(id) ON DELETE CASCADE |
| benefit_reservations_pkey | PRIMARY KEY | PRIMARY KEY (id) |
| fk_benefit_reservations_org | FOREIGN KEY | FOREIGN KEY (org_id) REFERENCES organizations(id) |
Indexes
Section titled “Indexes”| Name | Definition |
|---|---|
| benefit_reservations_pkey | CREATE UNIQUE INDEX benefit_reservations_pkey ON public.benefit_reservations USING btree (id) |
Triggers
Section titled “Triggers”| Name | Definition |
|---|---|
| benefit_reservations_updated_at | CREATE TRIGGER benefit_reservations_updated_at BEFORE UPDATE ON public.benefit_reservations FOR EACH ROW EXECUTE FUNCTION update_updated_at_column() |
Relations
Section titled “Relations”erDiagram
"public.benefit_reservations" }o--|| "public.entitlements" : "FOREIGN KEY (entitlement_id) REFERENCES entitlements(id) ON DELETE CASCADE"
"public.benefit_usage" }o--o| "public.benefit_reservations" : "FOREIGN KEY (reservation_id) REFERENCES benefit_reservations(id) ON DELETE SET NULL"
"public.benefit_reservations" }o--|| "public.organizations" : "FOREIGN KEY (org_id) REFERENCES organizations(id)"
"public.benefit_reservations" {
uuid entitlement_id FK ""
uuid id ""
text org_id FK ""
}
"public.entitlements" {
uuid benefit_definition_id FK ""
uuid company_id FK ""
uuid id ""
uuid membership_unit_id FK ""
text org_id FK ""
uuid sponsor_subscription_id FK ""
}
"public.benefit_usage" {
uuid entitlement_id FK ""
text org_id FK ""
uuid reservation_id FK ""
}
"public.organizations" {
text association_id FK ""
uuid default_approval_reviewer_contact_id FK "Org-level fallback reviewer for two-step send (#5698). Routing chain: the sender's own reviewer, then this, then all org admins. NULL means fall through to the admins, which is the pre-#5698 behaviour."
text id ""
text parent_org_id FK "#671 self-referencing hierarchy pointer. NULL = root org. Direct writes are blocked by trg_block_direct_parent_org_id_writes for every role except service_role/postgres/supabase_admin — the only write path for authenticated/interactive callers is public.reparent_organization(). Cycle-prevented by trg_prevent_org_hierarchy_cycle. #quot;Is association#quot; is derived (EXISTS a child), never stored."
}
Generated by tbls

