Day Passes
Single passes, multi-packs, shared company packs, and redemption.
A day pass grants one day's access. It can be bought individually or as a
multi-use pack (DayPassPack), and a pack can optionally be shared across
a company.
Buying a day pass
- Public, guest checkout (
/day-pass) — no account required. - Portal (
/portal/day-passes) — for a signed-in customer, its own independent implementation of the same purchase flow. - Native app — buy, redeem a pack credit, and cancel a reservation, all from the app.
- Staff — walk-in sale (
/admin/day-passes) — cash, card, terminal, no customer-facing checkout involved.
Multi-packs
A pack holds a fixed number of credits, redeemed one per day of use. Redeeming checks for an existing reservation on that date first — you can't accidentally double-book the same day against the same pack.
Company-shared packs
A company can share a day-pass pack across its employees, with a per-employee credit cap the company controls — so one person can't silently exhaust a pack meant to cover a whole team. Staff can also redeem a shared credit on someone's behalf from /admin/day-passes, which resolves the redeeming employee and enforces the same cap the portal path does.
Check-in
Three independent check-in surfaces exist, all producing the same result: /admin/day-passes, /admin/front-desk, and the mobile app's QR scanner. A customer's reusable pickup-style QR (shown in the portal or native app) lets staff jump straight to the right reservation instead of searching by name.
Balance and expiry reminders
A daily cron checks for low balances and expiring packs and sends a reminder — but never repeats a reminder for a balance that hasn't actually changed since the last one went out.