docs/briefs/studio-booking.md

Module brief: StudioBookingModule

Slug / tier / group / category: studio-booking · advanced · features · Membership One-liner: Studio selector + availability slots + token cost → balance-after + confirm & deduct. Closest references: ProductModule (option chips + fields sub-card + CTA); TicketingModule tiers; Commerce Stack pattern. Source: YOU Studio wireframes §4b.

Anatomy

  • ModuleShell, title default "Book a studio"
  • Studio chips row (soft; selected solid)
  • Slot grid per studio: time chips — available (soft) / booked (muted, inert) / selected (solid)
  • Cost sub-card: token cost · balance · balance after
  • Policy line ("Cancel >48h free · <48h forfeit tokens")
  • CtaRow "Confirm & deduct tokens" (solid; disabled until a slot is selected)

Content model

studios[] {id,name,slots[] {id,label,booked?}}, tokenCost, balance, policy?, onConfirm(studioId, slotId).

Fields

title text · header toggle

Out of scope

Live availability, server deduction.