Skip to main content

Entity Relationship Overview

countries → cities → neighbourhoods

merchants (subscription_plans) → venues → venue_amenities (amenities)
                                       → venue_cuisines (cuisines)
                                       → venue_knowledge
                                       → venue_leads ← enquiries ← customers

                                                proposals → beos
                                                         → commission_settlements

Core Tables

customers

Registered end-customers (event planners).
ColumnTypeNotes
iduuidPrimary key
supabase_user_iduuidLinks to Supabase Auth
first_name, last_nametext
emailtextNOT NULL
phonetext
company_nametext
created_attimestamp

merchants

Venue owners / managers.
ColumnTypeNotes
iduuidPrimary key
supabase_user_iduuidLinks to Supabase Auth
first_name, last_nametext
emailtextNOT NULL
roletext
company_nametext
logo_urltext
onboarding_completedboolean
plan_idtextFK → subscription_plans
currency_codetext

venues

Individual venues listed by merchants.
ColumnTypeNotes
iduuidPrimary key
merchant_iduuidFK → merchants
venue_nametextNOT NULL
address, city_id, neighbourhood_idLocation
seated_capacity, standing_capacityinteger
price_min, price_maxnumeric
operating_hoursjsonb
venue_type_iduuidFK → venue_types
currency_codetext
is_activeboolean
public_tokentextFor public-facing links
is_featuredboolean

enquiries

Customer group booking requests (RFQs).
ColumnTypeNotes
iduuidPrimary key
rfq_numberintegerAuto-incremented sequence
event_datedateNOT NULL
time_slottimeNOT NULL
group_sizeintegerNOT NULL
budget_tierenumEconomy / Standard / Premium / Luxury
city_id, neighbourhood_iduuid
event_category_iduuidFK → event_categories
cuisine_preference_iduuidFK → cuisines
venue_type_iduuidFK → venue_types
customer_iduuidFK → customers
currency_codetextAuto-synced from city
statustextopen / confirmed
confirmed_proposal_iduuidSet on confirmation
confirmed_venue_iduuidSet on confirmation

venue_leads

Junction between an enquiry and a specific venue — one lead per venue per enquiry.
ColumnTypeNotes
iduuidPrimary key
enquiry_iduuidFK → enquiries
venue_iduuidFK → venues
merchant_iduuidFK → merchants
statusenumpending / accepted / declined / connected / closed_won / closed_lost
merchant_rfq_numberintegerAuto-set by trigger
proposed_event_datedateMerchant can counter-propose
proposed_group_sizeinteger
is_counter_offerboolean
accepted_at, declined_at, closed_won_at, closed_lost_attimestamp
is_readboolean

proposals

Proposals sent by merchants in response to leads.
ColumnTypeNotes
iduuidPrimary key
venue_lead_iduuidFK → venue_leads
venue_iduuidFK → venues
titletext
statusenumdraft / sent / viewed / confirmed / declined / expired
offer_valid_untildate
detailstextAI-generated or manual
package_inclusionstext[]
amount, service_fee, discount, totalnumeric
price_typeenumPer Person / Per Bottle / Per Item / Per Event
payment_terms, venue_policiestext
ai_generatedboolean
public_tokentextFor public-facing proposal links
signed_by_name, signed_at, signature_base64Digital signature
selected_packagesjsonb
currency_codetext

commission_settlements

Auto-created when a proposal is confirmed.
ColumnTypeNotes
proposal_iduuidFK → proposals
merchant_iduuidFK → merchants
applied_commission_ratenumericFrom subscription plan
statusenumunpaid / pending_verification / paid / cancelled
is_paidboolean
receipt_url, invoice_urltext

beos

Banquet Event Orders linked to confirmed proposals.
ColumnTypeNotes
proposal_iduuidFK → proposals
setup_timetext
table_setuptext
staffing_requirementstext
av_requirementstext
sales_contact, venue_mobiletext
miscellaneous_notestext

venue_knowledge

PDF menus and brochures uploaded by merchants for AI extraction.
ColumnTypeNotes
venue_iduuidFK → venues
merchant_iduuidFK → merchants
file_pathtextNOT NULL — path in Supabase Storage
extracted_datajsonbAI-extracted content
statustext

Support Tables

TablePurpose
citiesCity list with default currency
countriesCountry reference data
neighbourhoodsNeighbourhood lookup (FK → cities)
amenitiesAmenity types (e.g. “Private Room”, “AV Equipment”)
cuisinesCuisine types
event_categoriesEvent types
venue_typesVenue type categories
subscription_plansMerchant plan definitions
exchange_ratesCurrency exchange rates (updated by Edge Function)
lead_response_timesTracks how quickly merchants respond to leads
lead_valuesEstimated booking value per lead
merchant_lead_counterTracks last RFQ number per merchant
merchant_analytics_v3Materialised view for analytics dashboard
merchant_commission_ledgerView for commission tracking

Enums

EnumValues
budget_tierEconomy, Standard, Premium, Luxury
lead_statuspending, accepted, declined, connected, closed_won, closed_lost
proposal_statusdraft, sent, viewed, confirmed, declined, expired
commission_statusunpaid, pending_verification, paid, cancelled
price_typePer Person, Per Bottle, Per Item, Per Event
currency_code_typeUSD, AED, GBP, INR, EUR
occasion_typeCorporate, Birthday Party, Conferences/Seminars, Gala Dinners, and 13 more