hamed and Claude Opus 5
4fe0c4f9bf
refactor(pricing): make the service the only price source
...
Price lists, annual tariffs and per-branch price overrides each answered
"what does this service cost?" differently, so a single date could carry
several answers and nobody could say which one was right. Price now lives
only on ServiceItem.price_rials, edited from the services page.
- drop PriceList/PriceListItem, their repositories and the seven
/api/v1/price-list(s) endpoints; PricingController keeps only quote and
the appointment price snapshot
- drop Tariff, TariffRepository, TariffService and the two
/service-items/{uuid}/tariffs endpoints; creating or repricing a service
no longer upserts a current-year tariff
- drop price_rials from ServiceBranchOverride; the entity stays for its
duration columns, which DurationCalculator and ServiceSelectionValidator
still read
- InvoiceService reads the item price directly
- PricingEngine collapses to a single source; breakdown.sources always
reports service_item, keeping the response contract intact
- remove the price-lists admin page, its route and settings-menu entry, the
tariff modal and the service detail tariffs tab; useAppointmentInvoice
moves to its own hook file
Migration drops price_lists, price_list_items, service_tariffs and the
override price column.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-02 18:00: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
2026-07-30 16:28:04 +03:30
2026-07-30 17:34:36 +03:30
2026-07-30 18:14:23 +03:30
2026-07-30 18:44:02 +03:30
2026-07-30 21:07:30 +03:30
2026-07-30 21:21:33 +03:30
2026-07-31 09:28:55 +03:30
2026-07-31 09:42:21 +03:30
2026-07-31 10:19:19 +03:30
2026-07-31 10:44:28 +03:30
2026-07-31 11:11:03 +03:30
2026-07-31 11:33:07 +03:30
2026-07-31 11:33:07 +03:30
2026-07-31 12:06:48 +03:30
2026-07-31 12:27:54 +03:30
2026-08-01 15:56:50 +03:30
2026-08-01 20:50:47 +03:30
2026-08-02 12:23:36 +03:30
2026-08-01 21:43:12 +03:30
2026-08-01 21:43:12 +03:30
2026-08-01 21:48:45 +03:30
2026-08-02 15:25:32 +03:30
2026-08-02 18:00:48 +03:30