hamed and Claude Opus 5
6c2e075eea
feat(booking): persist service duration and allow full service replacement
...
Appointment gains:
- replaceServiceItems(): full replacement that unconditionally syncs the
legacy single serviceItem column. addServiceItem() only fills it when null,
which would leave stale service names in the four consumers that read
service_item (admin lists, public site, desktop app).
- currentServiceUuids(): input-order uuids, falling back to the single column
for appointments created before multi-service support.
- service_total_minutes / service_buffer_minutes (both nullable, NULL in slot
mode). slot_end - slot_start carries the number but cannot say whether it
was intentional, and a reserve entry has slot_start == slot_end so its
duration had nowhere to live.
Existing columns untouched: slot_start, slot_end, active_slot_key, is_reserve
verified unchanged via SHOW COLUMNS.
Task: docs/new_feture/taskes/task-00-service-mode-completion/
Slot-mode contract: unchanged (--group=slot-mode-frozen green)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-07-30 12:47:48 +03:30
..
2026-06-09 22:00:34 +03:30
2026-06-09 22:00:34 +03:30
2026-06-09 22:00:34 +03:30
2026-06-09 22:00:34 +03:30
2026-06-09 22:00:34 +03:30
2026-06-09 22:00:34 +03:30
2026-06-09 22:00:34 +03:30
2026-06-09 22:00:34 +03:30
2026-06-09 22:00:34 +03:30
2026-06-09 22:00:34 +03:30
2026-06-09 22:00:34 +03:30
2026-06-09 22:00:34 +03:30
2026-06-09 22:00:34 +03:30
2026-06-09 22:00:34 +03:30
2026-06-09 22:00:34 +03:30
2026-06-09 22:00:34 +03:30
2026-06-09 22:00:34 +03:30
2026-06-10 10:03:46 +03:30
2026-06-10 13:02:47 +03:30
2026-06-10 14:22:26 +03:30
2026-06-10 14:32:00 +03:30
2026-06-10 14:45:01 +03:30
2026-06-10 14:45:01 +03:30
2026-06-10 15:09:19 +03:30
2026-06-28 09:32:27 +03:30
2026-06-10 21:29:29 +03:30
2026-06-10 22:13:39 +03:30
2026-06-28 09:32:27 +03:30
2026-06-11 12:20:12 +03:30
2026-06-11 12:20:12 +03:30
2026-06-12 12:31:27 +03:30
2026-06-12 13:39:37 +03:30
2026-06-14 22:10:28 +03:30
2026-06-14 22:10:28 +03:30
2026-06-14 22:10:28 +03:30
2026-06-14 22:10:28 +03:30
2026-06-14 22:10:28 +03:30
2026-06-14 22:10:28 +03:30
2026-06-15 11:03:56 +03:30
2026-06-15 11:03:56 +03:30
2026-06-15 11:19:37 +03:30
2026-06-15 17:53:27 +03:30
2026-06-16 00:25:59 +03:30
2026-06-19 10:19:47 +03:30
2026-06-19 20:42:04 +03:30
2026-06-19 20:42:04 +03:30
2026-06-21 12:35:22 +03:30
2026-06-21 13:26:47 +03:30
2026-06-22 19:44:17 +03:30
2026-06-23 15:05:24 +03:30
2026-06-23 15:05:24 +03:30
2026-06-23 15:05:24 +03:30
2026-06-23 15:05:24 +03:30
2026-06-23 15:05:24 +03:30
2026-06-23 15:05:24 +03:30
2026-06-23 16:10:36 +03:30
2026-06-23 22:13:51 +03:30
2026-06-24 11:52:13 +03:30
2026-06-24 13:06:17 +03:30
2026-06-24 13:17:08 +03:30
2026-06-24 16:14:41 +03:30
2026-06-25 17:34:39 +03:30
2026-06-25 19:38:47 +03:30
2026-06-28 17:04:23 +03:30
2026-06-28 17:13:44 +03:30
2026-06-28 19:04:54 +03:30
2026-06-28 19:08:26 +03:30
2026-06-28 19:10:53 +03:30
2026-06-28 20:28:24 +03:30
2026-06-28 21:03:54 +03:30
2026-06-29 20:01:03 +03:30
2026-07-02 10:09:14 +03:30
2026-07-02 15:36:08 +03:30
2026-07-03 12:30:03 +03:30
2026-07-05 10:46:31 +03:30
2026-07-05 11:20:53 +03:30
2026-07-05 11:54:12 +03:30
2026-07-08 00:03:33 +03:30
2026-07-08 12:19:06 +03:30
2026-07-09 07:26:58 +03:30
2026-07-11 08:59:36 +03:30
2026-07-11 11:39:15 +03:30
2026-07-11 11:39:15 +03:30
2026-07-13 08:41:29 +03:30
2026-07-13 08:41:29 +03:30
2026-07-13 11:51:18 +03:30
2026-07-13 13:28:51 +03:30
2026-07-13 14:16:21 +03:30
2026-07-13 14:54:38 +03:30
2026-07-13 15:20:00 +03:30
2026-07-13 15:27:34 +03:30
2026-07-13 15:35:10 +03:30
2026-07-13 16:01:16 +03:30
2026-07-13 23:37:32 +03:30
2026-07-15 11:39:32 +03:30
2026-07-15 12:23:17 +03:30
2026-07-15 13:23:38 +03:30
2026-07-15 13:48:29 +03:30
2026-07-15 14:32:29 +03:30
2026-07-15 23:15:45 +03:30
2026-07-16 10:10:47 +03:30
2026-07-16 12:22:37 +03:30
2026-07-16 12:51:33 +03:30
2026-07-16 13:32:06 +03:30
2026-07-16 14:20:32 +03:30
2026-07-16 19:44:30 +03:30
2026-07-16 19:44:30 +03:30
2026-07-17 11:13:23 +03:30
2026-07-17 11:47:33 +03:30
2026-07-17 12:02:03 +03:30
2026-07-17 10:21:52 +03:30
2026-07-17 14:44:23 +03:30
2026-07-17 15:06:25 +03:30
2026-07-18 09:44:13 +03:30
2026-07-18 12:26:15 +03:30
2026-07-18 12:26:15 +03:30
2026-07-18 12:34:42 +03:30
2026-07-18 13:32:56 +03:30
2026-07-18 16:55:39 +03:30
2026-07-18 22:56:46 +03:30
2026-07-18 23:38:02 +03:30
2026-07-19 08:23:57 +03:30
2026-07-19 20:19:35 +03:30
2026-07-19 20:19:35 +03:30
2026-07-23 15:37:58 +03:30
2026-07-23 23:13:15 +03:30
2026-07-23 23:13:15 +03:30
2026-07-25 16:21:19 +03:30
2026-07-25 16:21:19 +03:30
2026-07-25 16:21:19 +03:30
2026-07-25 17:50:14 +03:30
2026-07-25 17:50:14 +03:30
2026-07-25 17:50:14 +03:30
2026-07-25 18:34:18 +03:30
2026-07-25 18:34:18 +03:30
2026-07-25 18:34:18 +03:30
2026-07-28 11:22:37 +03:30
2026-07-28 11:56:57 +03:30
2026-07-28 11:56:57 +03:30
2026-07-28 11:56:57 +03:30
2026-07-28 11:56:57 +03:30
2026-07-28 15:06:28 +03:30
2026-07-28 15:06:28 +03:30
2026-07-28 15:21:55 +03:30
2026-07-28 16:50:51 +03:30
2026-07-29 13:28:59 +03:30
2026-07-29 19:57:02 +03:30
2026-07-30 10:18:41 +03:30
2026-07-30 12:47:48 +03:30