> ## Documentation Index
> Fetch the complete documentation index at: https://docs.grouple.pro/llms.txt
> Use this file to discover all available pages before exploring further.

# Customer Flows

> End-to-end flows for customers on Grouple

## Enquiry Submission Flow

The core customer flow is a multi-step enquiry form (`client/components/endcustomers/Enquiries/steps/`):

```
1. StepOne — Event type selection (occasion_type enum)
2. StepEventDetails — Date, time slot, group size, city, neighbourhood
3. StepRequirements — Budget tier, cuisine preference, venue type, special requirements
4. EnquiryModal — Customer details (name, email, phone, company)
5. Submit → Supabase INSERT into enquiries table
        ↓
   DB Trigger: tr_sync_enquiry_currency (BEFORE INSERT)
   DB Trigger: on_enquiry_created_broadcast (AFTER INSERT) → matches venues
   DB Trigger: send_enquiry_notification (AFTER INSERT) → calls send-lead-email Edge Function
```

## Budget Tiers

Customers select from four budget tiers:

| Tier     | Description                     |
| -------- | ------------------------------- |
| Economy  | Budget-conscious group bookings |
| Standard | Mid-range group events          |
| Premium  | Higher-end experiences          |
| Luxury   | Top-tier venues and experiences |

## Viewing Proposals

Once venues respond, customers see proposals via `Pages/MyEnquiriesPage.tsx` and `Proposals/ProposalTemplate.tsx`:

```
Customer logs in → sees all enquiries across 4 tabs:
  - Pending (awaiting venue responses)
  - Bids Received (proposals received from venues)
  - Confirmed (booking confirmed)
  - Completed (event done)
        ↓
Clicks enquiry → sees all proposals received from venues
        ↓
ProposalTemplate shows:
  - Venue details, pricing, selected packages
  - Payment terms, venue policies
  - AI-generated proposal content
        ↓
Customer confirms one proposal →
  ├── Confirmed proposal → status: "confirmed"
  ├── Other proposals → status: "declined" (auto)
  ├── Enquiry → status: "confirmed" + confirmed_proposal_id + confirmed_venue_id set
  set
  └── DB Trigger: trigger_sync_settlement → creates commission_settlements
      DB Trigger: proposal-confirmation-email → sends confirmation emails

venue_leads statuses (pending/accepted/declined/connected/closed_won/closed_lost)
→ Updated MANUALLY by the merchant via the leads dashboard
        ↓
DB Trigger: trigger_sync_settlement → creates commission_settlements record
DB Trigger: proposal-confirmation-email → sends confirmation emails
```

## Compare Flow

`Pages/Compare.tsx` allows customers to compare multiple proposals side by side before confirming.

## Occasion Types Supported

Corporate Event, Wedding, Conference, Private Party, Birthday Celebrations, Others
