feat: implement alias strategy for receipt import with user-scoped and global fallback aliases
Test Suite / test (24.15.0) (push) Has been cancelled
Test Suite / test (24.15.0) (push) Has been cancelled
This commit is contained in:
@@ -30,6 +30,29 @@ All detaljhistorik och djup teknisk bakgrund finns i respektive tekniska dokumen
|
||||
## Huvudprioriteringar
|
||||
|
||||
1. Aliasstrategi i kvittoimport: user-scope som standard, global fallback via admin.
|
||||
- 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.
|
||||
- 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.
|
||||
- Säkerställ deterministisk prioritet mellan privata och globala alias i receipt-import.
|
||||
- Behåll nuvarande schema i första fasen; ingen ny migration behövs så länge nuvarande `ReceiptAlias`-modell räcker.
|
||||
- Flutter:
|
||||
- Lägg alias-lärande nära manuell korrigering i receipt-import så användaren explicit kan välja att spara matchningen för framtida importer.
|
||||
- Lägg en enkel aliasöversikt där användaren kan se och ta bort sina privata alias.
|
||||
- Admin-UI ska kunna skapa globala alias utan att blanda ihop dem med vanliga användares privata alias.
|
||||
- Tester:
|
||||
- Verifiera att user alias alltid prioriteras före global alias för samma `receiptName`.
|
||||
- Verifiera att global alias används när user alias saknas.
|
||||
- Verifiera att vanlig användare inte kan skapa globala alias eller ta bort andras alias.
|
||||
- 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.
|
||||
2. ✅ **[CLEANUP] Receipt import legacy code (2026-05-09):** KLART
|
||||
- Borttaget: `matchProducts()`, `enrichWithAiCategories()`, `findWordMatch()` (gammal), m.fl.
|
||||
- Tester uppdaterade och gröna (66/66)
|
||||
|
||||
Reference in New Issue
Block a user