feat(api): keyless unavailable-ranges feed for the guest calendar #21
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/unavailable-ranges"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Keyless GET /api/v1/public/rooms/{id}/unavailable?start=&end= and its RPC twin chatelet_room_unavailable: the nights a guest cannot book over a window (default today to +365 days, capped at 400). Occupying bookings, live holds included so it always agrees with POST /availability, and manual blocks are clipped, sorted and coalesced into anonymous half-open spans. Adjacent spans merge on purpose so a guest cannot tell where one occupant's dates end and the next begin, nor a block from a stay.
Feeds the webapp's new stay calendar (aiolabs/webapp feat/chatelet-stay-calendar). is_available now uses the OCCUPYING_STATUSES constant it was inlining.
Stacked on #20 (the v0.4.1 hotfix); rebases to a single commit once that merges.
GET /api/v1/public/rooms/{id}/unavailable?start=&end= and its RPC twin chatelet_room_unavailable return the nights a guest cannot book over a window (default today → +365 d, capped at 400 d): occupying bookings — live holds included, so the feed always agrees with POST /availability — and manual blocks, clipped, sorted and coalesced into anonymous half-open spans. Adjacent spans merge on purpose so a guest cannot tell where one occupant's dates end and the next begin, nor a block from a stay. is_available now uses the OCCUPYING_STATUSES constant it was inlining. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>