feat: implement alias strategy for receipt import with user-scoped and global fallback, enhance validation and normalization, and update UI components
Test Suite / test (24.15.0) (push) Has been cancelled

This commit is contained in:
Nils-Johan Gynther
2026-05-09 23:41:42 +02:00
parent b342de906e
commit 65137b41fb
17 changed files with 388 additions and 67 deletions
+13 -4
View File
@@ -29,11 +29,20 @@ All detaljhistorik och djup teknisk bakgrund finns i respektive tekniska dokumen
## Huvudprioriteringar
1. Aliasstrategi i kvittoimport: user-scope som standard, global fallback via admin.
1. 🟡 Aliasstrategi i kvittoimport: DELVIS GENOMFÖRD (2026-05-09)
- Målbild:
- Vanliga användare skapar och använder privata alias som bara gäller deras egna importer.
- Admin kan dessutom skapa globala alias som fungerar som fallback för alla användare.
- Matchningsordning ska alltid vara: user alias -> global alias -> vanlig produktmatchning.
- Genomfört nu:
- Gemensam aliasnormalisering införd för lookup, upsert och alias-inlärning.
- Guardrails införda för tomma alias och brusalias som `rabatt`, `summa`, `pant`.
- Receipt import lär inte längre in alias automatiskt; användaren måste välja det explicit i edit-dialogen.
- Aliasöversikter i Flutter visar nu scope tydligare (`privat` vs `global fallback`).
- Tester tillagda för normalisering, prioritet och behörighet.
- Kvar:
- Manuell verifiering i produktionslik miljö av aliasflödet under riktig receipt import.
- Eventuell vidareutveckling av separat aliasöversikt om behov uppstår.
- Backend:
- Centralisera normalisering av `receiptName` så samma regler används i lookup, upsert och alias-inlärning.
- Härda guardrails för alias: blockera tomma alias, uppenbart brus (`rabatt`, `summa`, `pant`) och andra olämpliga kvittonamn.
@@ -50,9 +59,9 @@ All detaljhistorik och djup teknisk bakgrund finns i respektive tekniska dokumen
- Verifiera att manuell korrigering + `learnAlias` ger direkt träff vid nästa import.
- Verifiera att normalisering gör alias robust mot versaler, whitespace och enklare stavningsvariationer.
- Leveransordning:
- Fas 1: backend-hardening + tester.
- Fas 2: UI-stöd i receipt import för alias-inlärning.
- Fas 3: separat aliasöversikt för användare och admin.
- Fas 1: backend-hardening + tester.
- Fas 2: UI-stöd i receipt import för alias-inlärning.
- 🟡 Fas 3: separat aliasöversikt för användare och admin (grund finns, kan vidareutvecklas vid behov).
2.**[CLEANUP] Receipt import legacy code (2026-05-09):** KLART
- Borttaget: `matchProducts()`, `enrichWithAiCategories()`, `findWordMatch()` (gammal), m.fl.
- Tester uppdaterade och gröna (66/66)