Maurice
f0e1da2d81
feat(accommodations): put a booked night on its check-in day
...
A road-trip stop is a day assignment: the rail, the server-side plan and the
map all build their stops from day_assignments and only look the stay up
afterwards, to hang check-in and check-out on one. A stay written without an
assignment was therefore invisible to every routing surface, so a hotel entered
in the day planner never reached the road-trip view and had to be entered a
second time as an ordinary place. The road-trip side has always written both
halves in one go; this is the day planner catching up, in the domain that
writes the stay.
Booking a night now also assigns its place to the check-in day, inside the
transaction that already writes the stay and its partner hotel reservation, and
types the place as a hotel stop when it carries no type of its own, so it reads
exactly like a night booked in the road trip. Only the check-in day gets a
stop; the later nights ride on the stay row. A place already planned for that
day gets no second stop and the booking claims none, so cancelling it cannot
delete a stop somebody placed by hand. Moving the booking moves its own stop,
deleting it takes its own stop back, and a trip re-date carries it along with
the stay. All four write surfaces (REST, plugin RPC and both MCP tools) run the
same write and announce the same events; the answers carry the stop too,
because the broadcast skips the socket that sent the request.
New nullable day_assignments.accommodation_id marks a stop as a booking's own.
It stays NULL for every existing row on purpose: everything planned before this
was planned by hand, and no backfill rewrites a finished trip. A stay booked
earlier picks up its stop the next time somebody saves it.
The booking form keeps writing stays on its own: that surface is gated on
reservation_edit and the day stop is day_edit work.
2026-09-13 01:13:25 +02:00
..
2026-08-07 21:07:14 +02:00
2026-08-07 22:18:14 +02:00
2026-09-07 14:05:33 +02:00
2026-08-07 16:00:12 +02:00
2026-09-06 15:03:13 +02:00
2026-08-22 11:33:55 +02:00
2026-08-22 11:33:55 +02:00
2026-08-07 19:58:12 +02:00
2026-08-17 14:48:23 +02:00
2026-08-22 11:33:55 +02:00
2026-08-11 20:28:49 +02:00
2026-08-23 11:59:12 +02:00
2026-09-01 17:18:10 +02:00
2026-09-13 01:13:25 +02:00
2026-09-13 01:13:25 +02:00
2026-08-10 17:08:54 +02:00
2026-06-16 22:22:45 +02:00
2026-09-09 00:11:00 +02:00
2026-08-15 16:42:27 +02:00
2026-08-15 16:42:27 +02:00
2026-08-09 20:54:39 +02:00
2026-08-10 19:54:46 +02:00
2026-09-08 20:41:57 +02:00
2026-09-01 16:19:21 +02:00
2026-08-22 11:33:55 +02:00
2026-06-16 22:22:45 +02:00
2026-07-25 15:12:38 +02:00
2026-09-11 22:28:03 +02:00
2026-09-01 17:18:10 +02:00
2026-08-17 14:48:23 +02:00
2026-08-13 14:06:35 +02:00
2026-09-12 23:36:49 +02:00
2026-07-27 22:34:41 +02:00
2026-08-23 11:59:12 +02:00
2026-09-01 17:18:10 +02:00
2026-08-28 15:23:05 +02:00
2026-08-07 15:14:14 +02:00
2026-09-07 14:05:33 +02:00
2026-08-22 11:33:55 +02:00
2026-08-22 11:33:55 +02:00
2026-08-22 11:33:55 +02:00
2026-09-12 17:33:03 +02:00
2026-09-12 17:33:15 +02:00
2026-09-12 17:33:04 +02:00
2026-08-16 23:17:50 +02:00
2026-08-22 11:33:55 +02:00
2026-09-02 21:06:51 +02:00
2026-08-10 19:54:46 +02:00
2026-07-26 15:28:55 +02:00
2026-09-06 15:02:58 +02:00
2026-08-10 19:54:46 +02:00
2026-09-12 13:25:15 +02:00
2026-08-12 14:14:37 +02:00
2026-09-09 00:11:00 +02:00
2026-09-06 15:02:58 +02:00
2026-08-22 11:33:55 +02:00
2026-09-11 14:58:34 +02:00
2026-08-25 19:26:38 +02:00
2026-06-16 22:22:45 +02:00
2026-09-01 17:18:10 +02:00
2026-08-10 21:49:27 +02:00
2026-07-25 18:14:37 +02:00
2026-07-25 18:14:37 +02:00
2026-09-12 23:36:49 +02:00
2026-09-12 23:36:49 +02:00
2026-09-12 23:36:49 +02:00
2026-09-12 23:36:49 +02:00
2026-09-12 23:36:49 +02:00
2026-09-11 22:28:03 +02:00
2026-08-11 22:14:12 +02:00
2026-08-11 22:14:12 +02:00
2026-09-13 01:13:25 +02:00
2026-08-07 18:42:53 +02:00
2026-08-11 22:23:51 +02:00
2026-08-22 11:33:55 +02:00
2026-08-11 16:42:49 +02:00
2026-08-11 22:23:51 +02:00
2026-08-11 11:15:32 +02:00
2026-09-08 23:15:26 +02:00
2026-09-08 23:15:26 +02:00
2026-08-11 09:58:37 +02:00
2026-09-12 12:24:33 +02:00
2026-09-07 09:01:56 +02:00
2026-09-01 17:18:10 +02:00
2026-08-23 11:59:12 +02:00
2026-09-08 15:24:21 +02:00
2026-08-23 11:59:12 +02:00
2026-09-03 10:47:08 +02:00
2026-09-02 21:06:42 +02:00
2026-08-20 15:43:27 +02:00
2026-09-03 10:47:08 +02:00
2026-09-03 10:47:08 +02:00
2026-08-23 11:59:12 +02:00
2026-09-03 13:59:39 +02:00
2026-08-15 16:42:27 +02:00
2026-08-15 16:42:27 +02:00
2026-09-12 18:02:57 +02:00
2026-08-15 16:42:27 +02:00
2026-08-15 16:42:27 +02:00
2026-09-07 18:36:54 +02:00
2026-09-12 18:03:11 +02:00
2026-09-08 20:41:57 +02:00
2026-09-09 18:55:31 +02:00
2026-09-07 18:36:54 +02:00
2026-08-10 12:24:15 +02:00
2026-09-08 20:41:57 +02:00
2026-09-07 14:05:33 +02:00
2026-09-07 18:36:54 +02:00
2026-08-10 12:24:15 +02:00
2026-09-07 14:05:33 +02:00
2026-09-08 20:41:57 +02:00
2026-09-08 20:41:57 +02:00
2026-09-12 18:02:57 +02:00
2026-08-11 22:44:20 +02:00
2026-09-07 18:36:54 +02:00
2026-08-11 23:11:34 +02:00
2026-08-23 11:59:12 +02:00
2026-08-08 22:27:56 +02:00
2026-08-10 19:54:46 +02:00
2026-09-08 15:24:21 +02:00
2026-08-08 22:27:56 +02:00
2026-08-10 13:38:26 +02:00
2026-08-22 11:33:55 +02:00
2026-09-06 15:02:58 +02:00
2026-09-06 15:02:58 +02:00
2026-08-08 12:09:56 +02:00
2026-09-06 15:02:58 +02:00
2026-09-04 12:15:53 +02:00
2026-09-04 12:15:53 +02:00
2026-08-23 11:59:12 +02:00
2026-09-04 12:15:53 +02:00
2026-08-15 16:42:27 +02:00
2026-08-15 22:48:03 +02:00
2026-08-28 20:11:28 +02:00
2026-09-02 16:21:50 +02:00
2026-09-02 16:21:50 +02:00
2026-09-02 21:06:51 +02:00
2026-08-23 11:59:12 +02:00
2026-08-23 11:59:12 +02:00
2026-08-10 17:08:54 +02:00
2026-08-22 11:33:55 +02:00
2026-08-10 19:54:46 +02:00
2026-08-10 12:24:15 +02:00
2026-09-07 14:05:33 +02:00
2026-09-07 14:05:33 +02:00
2026-09-07 14:05:33 +02:00
2026-09-07 14:05:33 +02:00
2026-09-07 14:05:33 +02:00
2026-09-07 18:36:54 +02:00
2026-09-07 18:36:54 +02:00
2026-07-30 17:07:12 +02:00
2026-08-12 17:43:22 +02:00
2026-08-29 12:22:46 +02:00
2026-08-22 11:33:55 +02:00
2026-09-12 23:36:09 +02:00
2026-09-12 23:36:09 +02:00
2026-09-12 23:36:09 +02:00
2026-09-12 23:36:49 +02:00
2026-08-23 11:59:12 +02:00
2026-08-19 23:36:42 +02:00
2026-08-10 19:54:46 +02:00
2026-08-09 22:43:05 +02:00
2026-08-10 21:49:27 +02:00
2026-08-23 11:59:12 +02:00
2026-09-04 19:08:15 +02:00
2026-09-12 11:23:09 +02:00
2026-09-12 16:07:36 +02:00
2026-09-12 16:07:36 +02:00
2026-09-11 23:25:06 +02:00
2026-09-12 12:24:33 +02:00
2026-09-10 21:40:51 +02:00
2026-09-10 21:40:51 +02:00
2026-08-23 11:59:12 +02:00
2026-09-09 14:52:50 +02:00
2026-08-15 22:48:16 +02:00
2026-08-15 16:42:27 +02:00
2026-08-27 12:06:55 +02:00
2026-08-22 11:33:55 +02:00
2026-09-11 11:01:25 +02:00
2026-09-02 21:06:42 +02:00
2026-09-09 10:11:36 +02:00
2026-08-25 19:26:38 +02:00
2026-09-08 15:24:21 +02:00
2026-06-16 22:22:45 +02:00
2026-08-15 16:42:27 +02:00
2026-08-10 19:54:46 +02:00
2026-07-26 15:28:55 +02:00
2026-08-22 11:33:55 +02:00
2026-08-09 19:13:21 +02:00
2026-08-16 23:17:50 +02:00
2026-08-28 15:23:05 +02:00
2026-08-01 12:45:35 +02:00
2026-09-07 09:01:56 +02:00
2026-08-20 18:40:21 +02:00
2026-08-22 11:33:55 +02:00
2026-08-18 22:24:29 +02:00
2026-09-07 18:36:54 +02:00
2026-08-19 23:36:42 +02:00
2026-08-09 19:13:21 +02:00
2026-08-10 19:54:46 +02:00
2026-08-10 13:38:26 +02:00
2026-08-11 16:42:49 +02:00
2026-08-10 13:38:26 +02:00
2026-09-13 01:13:25 +02:00
2026-09-01 17:18:10 +02:00
2026-09-13 01:13:25 +02:00
2026-09-01 16:19:21 +02:00
2026-08-11 16:42:49 +02:00
2026-08-22 11:33:55 +02:00
2026-08-12 00:38:41 +02:00
2026-09-12 12:51:27 +02:00
2026-08-23 11:59:12 +02:00
2026-08-15 16:42:27 +02:00
2026-08-18 22:24:29 +02:00
2026-09-01 17:18:10 +02:00
2026-08-23 11:59:12 +02:00
2026-08-10 13:38:26 +02:00
2026-08-11 09:58:37 +02:00
2026-06-16 22:22:45 +02:00