# Zavvion Events Commercial Lite MVP - Role Walkthrough Scripts

Use these scripts as human tester run-books. Testers should still record results in the Excel workbook.

## Public Visitor Script

1. Open the public home page.
2. Confirm the logo, navigation, Discover, Sign in, and Host events paths are visible and correctly styled.
3. Browse events.
4. Filter by category, status, reserved seating, and non-reserved seating.
5. Open the mixed seating event.
6. Confirm About, Booking, and Seat-map tabs.
7. Confirm the Seat-map tab is blank when no PDF/image was uploaded, and shows the uploaded PDF/image only when one exists for that exact reusable seat map.
8. In Booking, select a reserved seat and confirm the basket asks for a ticket type.
9. Add non-reserved tickets and confirm no exact seat is needed.
10. Confirm only event-allocated ticket types appear.
11. Attempt checkout and confirm unsafe public payment methods such as cash/counter terminal are not available.

## Customer Script

1. Register a new customer, then log out and log back in.
2. Open My tickets and confirm no other customer data appears.
3. Buy one non-reserved ticket.
4. Buy one reserved seat ticket.
5. Confirm tickets/orders appear under the customer account.
6. Confirm selected reserved seats become unavailable to another browser/customer.
7. Edit profile details and refresh.
8. Request data export/delete account support flows if present.
9. Attempt direct organiser/admin URLs and record the 403/redirect result.

## Organiser Script

1. Log in as organiser.
2. Confirm the menu only shows organiser functions.
3. Create a venue.
4. Create a reusable seat map under that venue.
5. Add at least one reserved seating section and one non-reserved seating section.
6. Upload or replace a customer-facing PDF/image for that exact reusable seat map.
7. Create a future event and select the exact reusable seat map.
8. Try to create a past event and confirm validation blocks it.
9. Configure event-level ticket prices, quantities, and max/order values.
10. Remove one allocated ticket from the event and confirm the public event no longer offers it.
11. Enable section-specific ticket allocation and map ticket types to reserved/non-reserved sections.
12. Upload event media and confirm only that event's media is shown.
13. Preview and publish only when readiness checks allow it.
14. Open finance/Stripe readiness and verify the organiser can start Stripe Connect setup.

## Platform Organiser Script

1. Log in as platform organiser.
2. Switch organiser context.
3. Create/edit a venue or event within the selected organiser context.
4. Switch context and confirm the previous organiser's data does not appear.
5. Attempt to open admin fee rules, organiser approval, or super admin controls.
6. Record whether access is blocked cleanly.

## Platform Admin Script

1. Log in as platform admin.
2. Review organiser applications.
3. Submit an organiser application from `/organiser/apply`, then approve/reject/request info from admin.
4. Create a global fee rule for a country/currency.
5. Attempt to create a conflicting active fee rule and confirm the platform blocks it.
6. Edit, deactivate, and delete fee rules where allowed.
7. Confirm platform admin cannot unsafely assign/edit `platform_super_admin`.
8. Review deployment/system health.
9. Confirm no secrets, private tokens, passwords, or local paths are visible.

## Live Event-Day Stress Script

1. Two customers attempt the same reserved seat at the same time.
2. One customer abandons payment; another tries after hold expiry.
3. Organiser checks sales totals while buyers purchase.
4. Customer refreshes checkout during seat hold.
5. Mobile buyer selects seats and checks out on a small phone.
6. Admin checks readiness and payment logs.
7. If scanner is enabled, scan valid, duplicate, wrong-event, and cancelled tickets.
