Late baggage pickup
Late baggage pickup is a special-request sub-category: the guest has checked out but wants to come back later in the day to collect bags. Cleaner can't fully close the unit; the next guest's check-in is at risk; the PIN may need extension.
How the LLM detects it (gh#549)
The special-request detector classifier picks up phrases like:
- "Can I leave my bags and pick them up at 16:00?"
- "We'll be back around 5 PM for the suitcases"
- "Where can I store luggage until evening?"
…and emits a late_baggage_pickup category with a proposed pickup time.
What happens after detection
The detection spawns a V28 approval task:
Late baggage pickup requested — Castle&River Vydrica
Guest: Johanna · Checkout: 11:00 · Requested pickup: 16:00
[ Approve ] [ Reject ] [ Edit ]
Approve
Approving writes:
reservations.lateBaggagePickup=1+reservations.lateBaggagePickupTime=<HH:MM>- Cleaner sees a
🧳 LATE PICKUP @ 16:00chip in the cleanerplánfor this cleaning — tells the cleaner the unit can't fully close until the pickup happens. - The cleanup-task precondition gate holds: any task that depends on
reservation.cleanupComplete(e.g. checkout-message auto-send) doesn't fire until the cleanup actually completes.
Nuki PIN extension
If the pickup window extends past the original PIN expiry, the platform automatically extends the guest's Nuki PIN to cover the extended window (no operator action required).
If next-reservation check-in conflicts with the pickup window, the operator sees a warning on the calendar chip — manual arbitration needed.
Reject
Sends an AI-drafted reply to the guest explaining the late pickup can't be accommodated (or proposing an alternative time). Operator reviews + sends.
Why this is its own flow
Late baggage pickup pairs with preventive checkout logic (gh#547 — a sibling preventive layer that flags potentially-disrupted turnovers before they happen). Together they reduce the operator's intervention burden on common turnover-day complications.
Implements: gh#549 (Late baggage pickup — LLM detect + V28 approval task + cleanup-task precondition gate + Nuki PIN extension). Related: gh#547 (preventive-layer sibling), Special requests overview.