# 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), medan `inventory` använder `origin` (string). ## Scope - Uppdatera `ParsedReceiptItem` och `FlyerImportItem` för att matcha `inventory`-tabellen. - Uppdatera mappningslogiken i importfunktionerna. - Uppdatera databasen för att stödja `originCountries` som 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 `categoryId` för att möjliggöra kategorisättning. - Använd `rawName` istället för `receiptName` för konsistens. - Mappa `origin` till `inventory.origin`. ### 2. Uppdatera `FlyerImportItem` (flyer-import) - **Mål**: Anpassa fältnamn och datatyper för att matcha `inventory`-tabellen. - **Åtgärder**: - Använd `rawName` istället för `receiptName` för konsistens. - Mappa `signals.originCountries[0]` till `inventory.origin`. - Mappa `categoryId` till `product.categoryId` om en produkt skapas/uppdateras. ### 3. Uppdatera mappningslogiken - **Mål**: Förenkla mappningen från importfunktionerna till `inventory`-tabellen. - **Åtgärder**: - Uppdatera `receipt-import.service.ts` för att använda `inventory`-fältnamn. - Uppdatera `flyer-import.service.ts` för att använda `inventory`-fältnamn. ### 4. Uppdatera databasen (lång sikt) - **Mål**: Stödja `originCountries` som en array i `inventory`-tabellen. - **Åtgärder**: - Lägg till `originCountries Json?` i `inventory`-tabellen. - Uppdatera `CreateInventoryDto` för att inkludera `originCountries`. ### 5. Uppdatera DTO:er - **Mål**: Säkerställa att DTO:er matchar `inventory`-tabellen. - **Åtgärder**: - Uppdatera `CreateInventoryDto` för att inkludera `originCountries`. ## Leverabler - Uppdaterade `ParsedReceiptItem` och `FlyerImportItem` som matchar `inventory`-tabellen. - Uppdaterad mappningslogik i `receipt-import.service.ts` och `flyer-import.service.ts`. - Uppdaterad databas för att stödja `originCountries` som en array. - Uppdaterade DTO:er för att inkludera `originCountries`. ## Acceptanskriterier - `ParsedReceiptItem` och `FlyerImportItem` använder samma fältnamn och datatyper som `inventory`-tabellen. - Mappningslogiken i importfunktionerna är förenklad och använder `inventory`-fältnamn. - `inventory`-tabellen stödjer `originCountries` som en array. - `CreateInventoryDto` inkluderar `originCountries`. ## Rekommenderad genomförandeordning 1. Uppdatera `ParsedReceiptItem` och `FlyerImportItem`. 2. Uppdatera mappningslogiken i importfunktionerna. 3. Uppdatera databasen för att stödja `originCountries` som en array. 4. 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.