Play Center · Play centre stays (check-in / check-out)

The supervised-play-area desk screen: who is currently inside, with the child’s name, birth date, guardian, guardian contact details and time in the centre, plus check-in and check-out against the centre’s capacity.

AreaPlay Center
Routesplay-center · play-center.children · play-center.children.index
Centre modulesplaycenter
Staff levelsroot · admin · manager · crmmanager · crmoperator · weboperator
Modelschild · child-stay · user
UI labelplay-center-stays / menu.navbar.playcenter.show
Coverage5 use cases · 2 happy · 6 failure

How it works

playcenterFull compares current occupancy with the capacity configured on the centre — the only hard capacity control in the product. Check-in requires the guardian to have a VAT number on file (child#canCheckIn needs hasVatNumber && !isInPlayCenter), which is a legal-identification requirement expressed as an ability, and the message tells the operator exactly how to fix it. is-in-play-center and play-center.time make the current state and dwell time visible at a glance; the same operations are also reachable from a customer’s children list.

Use cases

Why someone opens this (5)

  • Checking a child in when a parent drops them off, recording the expected pick-up time.
  • Seeing who is inside and how long they have been there during an evacuation or shift handover.
  • Refusing entry when the area is at capacity.
  • Refusing entry when the guardian has no VAT number on file.
  • Checking a child out when collected.

Path map

flowchart LR
    F(["Play centre stays check-in / check-out"]):::feat
    F --> H1["Child checked in"]:::ok
    F --> H2["Child checked out"]:::ok
    F -.-> X1["Play area full"]:::bad
    F -.-> X2["Guardian without a VAT number"]:::bad
    F -.-> X3["Child already inside"]:::bad
    F -.-> X4["Check-in/out rejected"]:::bad
    F -.-> X5["Times missing"]:::bad
    F -.-> X6["Module disabled"]:::bad
    classDef feat fill:#a6406c,stroke:#a6406c,color:#ffffff,font-weight:bold
    classDef ok fill:#e3f1ea,stroke:#0d6b42,color:#0d4a2e
    classDef bad fill:#f7e6e2,stroke:#9a2d1c,color:#6e1f13

Happy paths

Child checked in

  1. Operator finds the guardian and their registered child.
  2. The guardian has a VAT number and the area is below capacity.
  3. Entry time and expected exit time are entered in the check-in modal.
  4. child.checkin-success-message confirms and the child appears in the current-stays list with a running time.

Child checked out

  1. Operator opens the check-out modal for a child inside.
  2. Confirms; child.checkout-success-message is shown and occupancy drops.

Failure paths

QA checklist

Tick these off while regression-testing this feature. The boxes are plain Markdown, so progress is visible in git diffs.

  • ✅ Child checked in
  • ✅ Child checked out
  • ⛔ Play area full
  • ⛔ Guardian without a VAT number
  • ⛔ Child already inside
  • ⛔ Check-in/out rejected
  • ⛔ Times missing
  • ⛔ Module disabled

Implementation


Generated from doc/feature-inventory.json · id playcenter-stays · commit 276788ca6