27d622bfe6
- Added `originCountries` field to `InventoryItem` model for multi-country origin support - Updated `CreateInventoryDto` and `UpdateInventoryDto` with `originCountries` array field - Modified `InventoryService` to handle `originCountries` in create and update operations - Added `origin` field to `FlyerImportItem` response type for consistency - Added `categoryId` field to `ParsedReceiptItem` DTO for improved receipt parsing - Created database migration `20260524_add_origin_countries` for schema changes
3.3 KiB
3.3 KiB
Plan: Harmonisering av importfält baserat på inventory-tabellen
Mål
Skapa konsistens mellan kvitto-import, flyer-import och inventory-tabellen genom att anpassa fältnamn, datatyper och struktur. Detta kommer att förenkla integrationen och minska risken för fel.
Bakgrund
inventory-tabellen är central och har en väletablerad struktur.- Kvitto-import och flyer-import använder olika fältnamn och datatyper, vilket skapar inkonsistenser.
- Flyer-import använder
signals.originCountries(array), medaninventoryanvänderorigin(string).
Scope
- Uppdatera
ParsedReceiptItemochFlyerImportItemför att matchainventory-tabellen. - Uppdatera mappningslogiken i importfunktionerna.
- Uppdatera databasen för att stödja
originCountriessom en array (lång sikt).
Implementationsplan
1. Uppdatera ParsedReceiptItem (kvitto-import)
- Mål: Anpassa fältnamn och datatyper för att matcha
inventory-tabellen. - Åtgärder:
- Lägg till
categoryIdför att möjliggöra kategorisättning. - Använd
rawNameistället förreceiptNameför konsistens. - Mappa
origintillinventory.origin.
- Lägg till
2. Uppdatera FlyerImportItem (flyer-import)
- Mål: Anpassa fältnamn och datatyper för att matcha
inventory-tabellen. - Åtgärder:
- Använd
rawNameistället förreceiptNameför konsistens. - Mappa
signals.originCountries[0]tillinventory.origin. - Mappa
categoryIdtillproduct.categoryIdom en produkt skapas/uppdateras.
- Använd
3. Uppdatera mappningslogiken
- Mål: Förenkla mappningen från importfunktionerna till
inventory-tabellen. - Åtgärder:
- Uppdatera
receipt-import.service.tsför att användainventory-fältnamn. - Uppdatera
flyer-import.service.tsför att användainventory-fältnamn.
- Uppdatera
4. Uppdatera databasen (lång sikt)
- Mål: Stödja
originCountriessom en array iinventory-tabellen. - Åtgärder:
- Lägg till
originCountries Json?iinventory-tabellen. - Uppdatera
CreateInventoryDtoför att inkluderaoriginCountries.
- Lägg till
5. Uppdatera DTO:er
- Mål: Säkerställa att DTO:er matchar
inventory-tabellen. - Åtgärder:
- Uppdatera
CreateInventoryDtoför att inkluderaoriginCountries.
- Uppdatera
Leverabler
- Uppdaterade
ParsedReceiptItemochFlyerImportItemsom matcharinventory-tabellen. - Uppdaterad mappningslogik i
receipt-import.service.tsochflyer-import.service.ts. - Uppdaterad databas för att stödja
originCountriessom en array. - Uppdaterade DTO:er för att inkludera
originCountries.
Acceptanskriterier
ParsedReceiptItemochFlyerImportItemanvänder samma fältnamn och datatyper sominventory-tabellen.- Mappningslogiken i importfunktionerna är förenklad och använder
inventory-fältnamn. inventory-tabellen stödjeroriginCountriessom en array.CreateInventoryDtoinkluderaroriginCountries.
Rekommenderad genomförandeordning
- Uppdatera
ParsedReceiptItemochFlyerImportItem. - Uppdatera mappningslogiken i importfunktionerna.
- Uppdatera databasen för att stödja
originCountriessom en array. - Uppdatera DTO:er för att inkludera
originCountries.
Handover from Planning Session
- Planen är klar och redo för implementering.
- Inga frågor eller otydligheter kvarstår.