feat: implement user-scoped receipt aliases with global fallback; enhance alias management in admin panel
Test Suite / test (24.15.0) (push) Has been cancelled

This commit is contained in:
Nils-Johan Gynther
2026-05-04 19:43:13 +02:00
parent d73ea5ef7c
commit 64b06435cf
15 changed files with 751 additions and 36 deletions
+7
View File
@@ -10,6 +10,8 @@ class ProductApiPaths {
static const aiCategorizeBulk = '/products/ai-categorize-bulk';
static const deleted = '/products/deleted';
static const merge = '/products/merge';
static String mergePreview(int sourceProductId, int targetProductId) =>
'/products/merge-preview?sourceProductId=$sourceProductId&targetProductId=$targetProductId';
static String setStatus(int id) => '/products/$id/status';
static String update(int id) => '/products/$id';
static String remove(int id) => '/products/$id';
@@ -29,6 +31,11 @@ class ReceiptImportApiPaths {
static const refreshCategories = '/receipt-import/refresh-categories';
}
class ReceiptAliasApiPaths {
static const list = '/receipt-aliases';
static String remove(int id) => '/receipt-aliases/$id';
}
class RecipeApiPaths {
static const list = '/recipes';
static String detail(int id) => '/recipes/$id';
+3 -1
View File
@@ -62,7 +62,9 @@ class AppShell extends ConsumerWidget {
),
];
List<_AppDestination> _destinations(bool isAdmin) => _baseDestinations;
List<_AppDestination> _destinations(bool isAdmin) => isAdmin
? [..._baseDestinations, _adminHeaderDestination]
: _baseDestinations;
int? _selectedIndex(List<_AppDestination> destinations) {
final index = destinations.indexWhere(