# Zavvion Events Feature Map

This map is a product and implementation guide for the current commercial MVP. It separates customer-facing journeys, organiser operations, platform administration, and backend services so design, testing, and future Yii controller migration can stay aligned.

## Stakeholder Sitemap

```mermaid
flowchart TB
    Public["Public / Customer Entry"]
    Customer["Customer Account"]
    Organiser["Organiser Console"]
    Admin["Platform Admin Console"]
    Ops["Operations / Workers"]

    Public --> Home["Home / Featured Events"]
    Public --> Listings["Event Listings / Filters"]
    Public --> Detail["Event Detail / Tickets / Seat Map"]
    Detail --> Checkout["Checkout / Holds / Fees / Donations / Merchandise"]
    Checkout --> Payment["Stripe Checkout / Free Checkout / Local Test Guard"]
    Payment --> Wallet["Ticket Wallet / QR / Print / Pass JSON"]

    Customer --> Wallet
    Customer --> Orders["Orders / Resend Delivery"]
    Customer --> Profile["Profile / Email Verification / Phone Verification"]
    Customer --> Privacy["Privacy Requests / Consents"]

    Organiser --> OrgDash["Dashboard / Sales / Inventory"]
    Organiser --> EventOps["Events / Publishing / Media"]
    Organiser --> VenueOps["Venues / Floor Plans / Seat Maps"]
    Organiser --> TicketOps["Ticket Types / Age Rules / Holds / Inventory"]
    Organiser --> Commerce["Merchandise / Promos / Donations"]
    Organiser --> Door["Scanner / Offline Sync / Devices"]
    Organiser --> BoxOffice["Box Office Sales"]
    Organiser --> Staff["Staff / Roles / Feature Gates"]
    Organiser --> Finance["Ledger / Reports / Stripe Account"]

    Admin --> AdminDash["Platform Overview / Alerts / Health"]
    Admin --> SiteBuilder["Site Builder / Logo / Banners / Footer / Disclaimers"]
    Admin --> ThemeStudio["Theme Studio / Skin Catalog"]
    Admin --> FeatureControls["Organiser Feature Controls"]
    Admin --> AdminFinance["Fees / Taxes / Settlements / Exports"]
    Admin --> Compliance["Audit Logs / Privacy / Consents"]
    Admin --> Users["Users / Roles / Permissions"]
    Admin --> MediaReview["Media Review / Rescan / Retention"]

    Ops --> SeatExpiry["Expire Seat Holds"]
    Ops --> TicketDelivery["Send Ticket Deliveries"]
    Ops --> FinanceExports["Run & Send Finance Exports"]
    Ops --> MediaScan["Media Rescan / Retention"]
    Ops --> Alerts["System Alert Notifications"]
    Ops --> Smoke["Deployment & MVP Smoke Checks"]
```

## Backend Service Boundaries

```mermaid
flowchart LR
    Router["Current MVP Router"]
    Auth["Auth / RBAC / CSRF / Rate Limits"]
    Checkout["Checkout Draft Store / Completion Eligibility / Recorder"]
    Payment["Payment Mode Policy / Stripe Webhook Policy / Stripe Completion"]
    Tickets["Ticket Issuer / QR Token Resolver / Ticket Pass Manifest"]
    Scanner["Ticket Scan Service / Offline Conflict Resolver"]
    Media["Upload Inspector / Scan Runner / Variant Generator / Retention"]
    Finance["Ledger / Reconciliation / Settlement Exports / Delivery Queue"]
    AdminSvc["Theme Catalog / Branding Settings / Alerts / Readiness / Smoke Checks"]

    Router --> Auth
    Router --> Checkout
    Checkout --> Payment
    Checkout --> Tickets
    Tickets --> Scanner
    Router --> Media
    Router --> Finance
    Router --> AdminSvc
```

## Current URL Map

| Area | URL |
| --- | --- |
| Launch / home | `/public/home.html` |
| Event listing | `/public/events.html` |
| Event detail | `/public/event.html?slug=demo-gala` |
| Checkout | `/public/checkout.html` |
| Customer account | `/public/account.html` |
| Organiser console | `/public/organiser.html` |
| Admin console | `/public/admin.html` |
| Theme gallery | `/public/theme-gallery.html` |
| Scanner | `/public/scanner.html` |
| Platform map | `/public/platform-map.html` |

## Launch Smoke Command

```powershell
php bin/check-mvp-smoke --base-url=http://localhost/zavvion-events/public
```

Use this before a live browser walkthrough. It should return `status: ok` for the current local MVP.
