erio
d648811233
feat(groups): add rate multipliers management modal
...
Add a dedicated modal in group management for viewing, adding, editing,
and deleting per-user rate multipliers within a group.
Backend:
- GET /admin/groups/:id/rate-multipliers - list entries with user details
- PUT /admin/groups/:id/rate-multipliers - batch sync (full replace)
- DELETE /admin/groups/:id/rate-multipliers - clear all entries
- Repository: GetByGroupID, SyncGroupRateMultipliers methods on
user_group_rate_multipliers table (same table as user-side rates)
Frontend:
- New GroupRateMultipliersModal component with:
- User search and add with email autocomplete
- Editable rate column with local edit mode (cancel/save)
- Batch adjust: multiply all rates by a factor
- Clear all (local operation, requires save to persist)
- Pagination (10/20/50 per page)
- Platform icon with brand colors in group info bar
- Unsaved changes indicator with revert option
- Unit tests for all three backend endpoints
2026-03-12 23:37:36 +08:00
..
2026-03-12 11:12:01 +08:00
2026-03-12 11:20:59 +08:00
2026-02-02 22:13:50 +08:00
2026-03-03 16:11:05 +08:00
2026-02-02 22:13:50 +08:00
2026-03-07 15:06:13 +08:00
2026-01-03 06:37:08 -08:00
2026-01-03 06:37:08 -08:00
2026-02-02 22:13:50 +08:00
2026-03-11 13:53:19 +08:00
2026-02-22 22:07:17 +08:00
2026-03-11 13:53:19 +08:00
2026-02-07 19:46:42 +08:00
2026-02-08 12:05:39 +08:00
2026-02-07 19:46:42 +08:00
2026-03-03 15:43:08 +08:00
2026-03-02 16:04:20 +08:00
2026-03-02 16:04:20 +08:00
2026-03-02 16:04:20 +08:00
2026-03-05 21:02:11 +08:00
2026-01-01 04:01:51 +08:00
2026-03-09 19:55:18 +08:00
2026-03-09 19:55:18 +08:00
2026-02-02 22:13:50 +08:00
2026-01-11 15:00:16 +08:00
2026-01-11 15:00:16 +08:00
2025-12-31 23:42:01 +08:00
2025-12-31 23:42:01 +08:00
2025-12-25 17:15:01 +08:00
2025-12-26 16:47:44 +08:00
2026-02-02 22:13:50 +08:00
2026-03-07 18:19:04 +08:00
2026-02-05 21:52:54 +08:00
2026-02-10 11:42:39 +08:00
2025-12-31 23:42:01 +08:00
2026-01-04 19:28:20 +08:00
2026-02-28 15:01:20 +08:00
2026-02-09 08:19:01 +08:00
2026-02-02 22:13:50 +08:00
2026-02-26 10:53:04 +08:00
2026-03-02 16:04:20 +08:00
2026-01-14 15:55:44 +08:00
2026-01-14 15:55:44 +08:00
2026-01-15 18:27:06 +08:00
2026-03-02 16:04:20 +08:00
2026-01-07 23:15:20 +08:00
2026-03-02 16:04:20 +08:00
2026-02-28 15:01:20 +08:00
2026-03-07 17:02:19 +08:00
2026-03-02 16:04:20 +08:00
2026-03-02 16:04:20 +08:00
2026-03-02 16:04:20 +08:00
2026-02-28 15:01:20 +08:00
2026-02-23 12:45:37 +08:00
2025-12-25 17:15:01 +08:00
2025-12-26 16:47:44 +08:00
2026-03-02 01:12:41 +08:00
2026-01-03 06:36:35 -08:00
2025-12-31 23:42:01 +08:00
2026-03-03 16:11:05 +08:00
2026-02-28 15:01:20 +08:00
2026-02-28 15:01:20 +08:00
2026-03-03 16:11:05 +08:00
2026-02-28 15:01:20 +08:00
2026-02-28 15:01:20 +08:00
2026-03-02 16:04:20 +08:00
2026-01-15 15:14:44 +08:00
2026-02-28 15:01:20 +08:00
2026-02-28 15:01:20 +08:00
2026-02-14 11:21:30 +08:00
2026-01-11 23:49:03 +08:00
2026-01-09 20:52:57 +08:00
2026-03-03 01:05:11 +08:00
2026-01-23 19:39:48 +08:00
2026-02-12 14:20:14 +08:00
2026-02-12 14:20:14 +08:00
2026-01-13 22:49:26 -08:00
2026-01-12 14:17:42 +08:00
2026-01-11 23:57:20 +08:00
2026-02-12 16:27:29 +08:00
2026-01-24 01:14:44 +08:00
2026-01-09 20:52:57 +08:00
2026-03-11 17:32:00 +08:00
2026-03-11 17:40:28 +08:00
2025-12-26 16:45:40 +08:00
2026-03-02 16:04:20 +08:00
2026-03-02 16:04:20 +08:00
2026-02-07 19:46:42 +08:00
2026-01-15 15:14:44 +08:00
2026-02-03 17:12:27 +08:00
2026-03-02 16:04:20 +08:00
2025-12-29 19:23:49 +08:00
2026-02-05 18:40:49 +08:00
2025-12-26 16:47:44 +08:00
2025-12-26 16:47:44 +08:00
2025-12-26 16:47:44 +08:00
2025-12-29 19:23:49 +08:00
2026-02-11 16:39:42 +08:00
2026-02-02 22:13:50 +08:00
2026-02-02 22:13:50 +08:00
2026-02-05 12:42:54 +08:00
2026-03-02 16:04:20 +08:00
2026-03-02 16:04:20 +08:00
2026-02-28 20:38:35 +08:00
2026-03-08 06:59:53 +08:00
2026-02-02 22:13:50 +08:00
2026-03-11 17:32:00 +08:00
2026-02-02 22:13:50 +08:00
2026-02-12 12:07:20 +08:00
2026-02-12 12:04:13 +08:00
2026-02-05 22:36:17 +08:00
2026-03-04 10:15:42 +08:00
2025-12-29 10:03:27 +08:00
2026-03-07 18:19:04 +08:00
2026-02-02 22:13:50 +08:00
2026-02-02 22:13:50 +08:00
2026-03-03 16:11:05 +08:00
2026-01-31 21:46:28 +08:00
2026-02-28 15:01:20 +08:00
2025-12-30 17:13:32 +08:00
2026-01-03 06:34:00 -08:00
2026-01-11 21:54:52 -08:00
2026-02-02 22:13:50 +08:00
2026-01-03 06:36:35 -08:00
2026-01-03 10:52:24 +08:00
2025-12-25 16:01:17 +08:00
2025-12-25 17:15:01 +08:00
2026-02-02 22:13:50 +08:00
2026-02-28 15:01:20 +08:00
2026-02-28 15:01:20 +08:00
2026-02-28 15:01:20 +08:00
2026-03-09 09:51:26 +08:00
2026-02-07 19:46:42 +08:00
2026-03-09 09:51:26 +08:00
2026-01-01 19:09:06 +08:00
2026-03-12 23:37:36 +08:00
2026-03-03 01:05:11 +08:00
2026-01-05 19:03:54 +08:00
2026-03-04 14:07:17 +08:00
2026-02-02 22:13:50 +08:00
2026-02-02 22:13:50 +08:00
2026-03-05 16:31:27 +08:00