3252a8
58de153370
feat(tariffs): configurable purchase order for periods and packages
...
The order of enabled_periods (period tariffs) and traffic_packages
(traffic tariffs) is now the storefront order everywhere — both the
Telegram keyboard and the web app. Only new tariffs-config tariffs are
affected; legacy subscription/traffic options are untouched.
- Stop sorting periods and traffic packages in the web app plans
serializer so it follows the configured order, matching the bot
keyboards that already iterate the lists as-is.
- Preserve the row order through the admin draft (load and save) instead
of sorting by months.
- Add a reusable Sortable component to the UI library (native HTML5
drag & drop with a grip handle; bits-ui/shadcn have no such primitive)
and use it to reorder period rows and traffic package rows in the
tariff editor.
2026-06-03 10:14:40 +03:00
..
2026-05-18 16:32:19 +03:00
2026-05-30 21:15:17 +03:00
2026-05-25 00:36:15 +03:00
2026-06-01 15:05:10 +03:00
2026-06-02 14:48:11 +03:00
2026-05-25 00:06:29 +03:00
2026-05-17 00:31:12 +03:00
2026-05-31 23:05:29 +03:00
2026-05-24 23:35:19 +03:00
2026-06-02 12:57:15 +03:00
2026-06-01 15:52:54 +03:00
2026-05-12 16:14:11 +03:00
2026-05-24 18:51:37 +03:00
2026-05-20 21:55:22 +03:00
2026-05-22 18:23:11 +03:00
2026-05-20 21:55:22 +03:00
2026-05-31 14:57:32 +03:00
2026-05-27 23:01:42 +03:00
2026-06-01 10:32:38 +03:00
2026-05-25 19:33:50 +03:00
2026-06-02 14:10:49 +03:00
2026-04-28 15:25:46 +03:00
2026-05-31 15:08:22 +03:00
2026-05-27 18:13:27 +03:00
2026-05-27 14:29:45 +03:00
2026-05-25 19:33:50 +03:00
2026-06-02 15:32:19 +03:00
2026-05-27 14:29:45 +03:00
2026-05-27 13:53:30 +03:00
2026-05-31 23:05:40 +03:00
2026-06-02 11:21:26 +03:00
2026-05-31 23:05:29 +03:00
2026-06-02 12:29:43 +03:00
2026-06-01 10:32:38 +03:00
2026-05-25 00:06:29 +03:00
2026-05-30 11:52:07 +03:00
2026-06-01 11:16:28 +03:00
2026-05-27 18:31:14 +03:00
2026-06-02 12:29:43 +03:00
2026-05-25 00:06:29 +03:00
2026-05-25 17:47:45 +03:00
2026-05-29 22:30:31 +03:00
2026-06-02 11:31:03 +03:00
2026-05-30 21:25:03 +03:00
2026-06-02 19:18:11 +03:00
2026-06-01 10:32:38 +03:00
2026-05-17 22:20:45 +03:00
2026-05-24 18:51:37 +03:00
2026-05-24 18:51:37 +03:00
2026-05-30 21:15:17 +03:00
2026-06-02 19:53:13 +03:00
2026-06-01 19:30:16 +03:00
2026-05-20 16:38:24 +03:00
2026-05-20 16:38:24 +03:00
2026-05-20 16:38:24 +03:00
2026-06-02 00:13:54 +03:00
2026-05-31 23:05:29 +03:00
2026-05-20 16:38:24 +03:00
2026-05-31 23:05:29 +03:00
2026-05-31 22:17:28 +03:00
2026-05-31 00:17:20 +03:00
2026-06-01 14:14:02 +03:00
2026-05-25 00:06:29 +03:00
2026-05-25 12:18:58 +03:00
2026-05-30 12:00:01 +03:00
2026-06-02 00:13:54 +03:00
2026-05-30 11:46:07 +03:00
2026-05-27 18:31:14 +03:00
2026-05-28 22:07:43 +03:00
2026-06-03 10:14:40 +03:00
2026-05-27 18:31:14 +03:00
2026-05-29 23:23:55 +03:00
2026-05-25 09:17:39 +03:00
2026-05-24 23:25:21 +03:00
2026-05-22 13:58:34 +03:00
2026-06-02 15:26:37 +03:00
2026-06-01 20:34:49 +03:00
2026-06-02 18:44:30 +03:00
2026-06-02 12:57:15 +03:00
2026-05-20 21:55:22 +03:00
2026-05-25 00:23:48 +03:00