CREATE INDEX ... ON chatelet.bookings is invalid SQLite grammar — the schema
qualifier must go on the INDEX name, not the table (SQLite attaches the ext
DB as schema `chatelet`). Would have failed m001 on every SQLite-backed
install (the default backend). Fixed to `CREATE INDEX chatelet.idx_... ON
<table>`, matching the restaurant extension. Caught by a real-DB migration
smoke (m001+m002 applied, room+booking round-tripped) before tagging; safe to
amend m001 in place since chatelet has never been installed anywhere yet.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019VUQCfdqiLSsFS2jcGnaFD
Private per-room access details (address, gate/door code). Sent to the
guest only in the encrypted check-in DM after payment — never in the
public listing. m002 adds the column (default '').
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019VUQCfdqiLSsFS2jcGnaFD
settings/rooms/bookings/blocks in ext_chatelet, with room+status and
payment_hash indexes for the overlap and settle hot paths. Ordinary
migrations (not the fork split — this is aio-original, no upstream to
rebase onto); still idempotent-friendly. No availability table by design.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019VUQCfdqiLSsFS2jcGnaFD