From d6fef0145c0679287cc81c341d29bb1cd61a5936 Mon Sep 17 00:00:00 2001 From: Nils-Johan Gynther Date: Sat, 2 May 2026 00:24:30 +0200 Subject: [PATCH] feat: implement hybrid alias model for receipt import and enhance alias learning in UI --- NEXT_STEPS.md | 22 +++++++++++++++---- .../presentation/receipt_import_tab.dart | 10 ++++----- flutter/next_steps_flutter.md | 14 +++++++++--- 3 files changed, 34 insertions(+), 12 deletions(-) diff --git a/NEXT_STEPS.md b/NEXT_STEPS.md index 0c2b1638..a6a8bd12 100644 --- a/NEXT_STEPS.md +++ b/NEXT_STEPS.md @@ -74,10 +74,24 @@ ## Nästa steg -1. Deploy och smoke-test av kvittoimportflödet på server. -2. Fortsatt flytt av UI-strängar till ARB (inventarie, pantry, recept). -3. Smoke-test på testdomän och avstämning. -4. Planera och påbörja avancerad AI-integration och EAN-skanning. +1. Inför hybrid alias-modell för kvittoimport: user-scope alias som standard + global alias som admin-verifierad fallback. +2. Uppdatera backend-matchordning för alias: user-alias -> global alias -> poängbaserat namnförslag -> AI-kategori. +3. Implementera automatisk alias-inlärning vid manuell korrigering i importflödet (först user-scope). +4. Deploy och smoke-test av kvittoimportflödet på server. +5. Fortsatt flytt av UI-strängar till ARB (inventarie, pantry, recept). +6. Smoke-test på testdomän och avstämning. +7. Planera och påbörja avancerad AI-integration och EAN-skanning. + +## Beslut 2026-05-02 - Aliasstrategi för kvittoimport + +- Alias ska vara hybrid: user-scope som standard, globalt alias endast via admin-verifiering. +- Syfte: minimera felträffar mellan användare och samtidigt bygga en kvalitetssäkrad global kunskapsbas. +- Tekniskt nästa steg i backend: +- Lägg till user-scope för `ReceiptAlias` (t.ex. `userId` + relevanta unika index). +- Behåll global alias som fallback för admin-godkända mappningar. +- Tekniskt nästa steg i klient: +- Spara manuell korrigering som alias (default: user-scope). +- Eventuell admin-toggle för att spara alias globalt. --- diff --git a/flutter/lib/features/import/presentation/receipt_import_tab.dart b/flutter/lib/features/import/presentation/receipt_import_tab.dart index d74757c6..9d42f913 100644 --- a/flutter/lib/features/import/presentation/receipt_import_tab.dart +++ b/flutter/lib/features/import/presentation/receipt_import_tab.dart @@ -333,11 +333,11 @@ class _EditDialogState extends State<_EditDialog> { final aiLabel = (aiPath != null && aiPath.isNotEmpty) ? aiPath : ((aiCategory != null && aiCategory.isNotEmpty) ? aiCategory : null); - final suggestedProductLabel = (item.suggestedProductId != null && - item.suggestedProductName?.isNotEmpty == true && - item.matchedProductId == null) - ? _normalizeProductName(item.suggestedProductName!) - : null; + final suggestedProductLabel = item.suggestedProductName?.isNotEmpty == true + ? _normalizeProductName(item.suggestedProductName!) + : (item.matchedProductName?.isNotEmpty == true + ? _normalizeProductName(item.matchedProductName!) + : null); final currentQuantity = double.tryParse(_quantityCtrl.text.replaceAll(',', '.')) ?? widget.item.quantity; final currentUnit = _unitCtrl.text.trim().isEmpty ? widget.item.unit : _unitCtrl.text.trim(); diff --git a/flutter/next_steps_flutter.md b/flutter/next_steps_flutter.md index edd3cc04..8c24000e 100644 --- a/flutter/next_steps_flutter.md +++ b/flutter/next_steps_flutter.md @@ -39,9 +39,17 @@ Relaterade dokument: ### Prioriterade nästa steg 1. Säkerställa robust bildimport och diagnostik. -2. Implementera avancerad AI-integration för produktkategorisering. -3. Utöka adminfunktioner för användarhantering och produktadministration. -4. Förbättra UI/UX för användarflöden, inklusive onboarding och profilhantering. +2. Implementera hybrid alias-stöd i kvittoimport tillsammans med backend: user-scope alias som standard och global alias via admin. +3. Stödja alias-inlärning i UI vid manuell korrigering (default: user-scope), samt visa scope tydligt för admin. +4. Implementera avancerad AI-integration för produktkategorisering. +5. Utöka adminfunktioner för användarhantering och produktadministration. +6. Förbättra UI/UX för användarflöden, inklusive onboarding och profilhantering. + +## Notering 2026-05-02 - Aliasstrategi kvittoimport + +- Flutter ska följa backend-kontraktet för hybrid alias-modell. +- Ingen klientspecifik speciallogik för matchning; klienten ska bara exponera tydliga val för scope vid manuell korrigering. +- Målet är färre felträffar mellan användare och bättre precision i personliga kvittoflöden. ## Beslut 2026-04-22 - User-scope för pantry och matplan