From 87eff6a37f5d001261214cb12488b73542e7acf1 Mon Sep 17 00:00:00 2001 From: Nils-Johan Gynther Date: Sun, 3 May 2026 16:01:09 +0200 Subject: [PATCH] refactor(products): remove brand field from Product model and update related DTO and service Co-authored-by: Copilot --- NEXT_STEPS.md | 3 ++- backend/prisma/schema.prisma | 1 - backend/src/products/dto/update-product.dto.ts | 5 ----- backend/src/products/products.service.ts | 5 ----- 4 files changed, 2 insertions(+), 12 deletions(-) diff --git a/NEXT_STEPS.md b/NEXT_STEPS.md index cf23e1d6..f7e70421 100644 --- a/NEXT_STEPS.md +++ b/NEXT_STEPS.md @@ -57,6 +57,7 @@ ## Status — senast genomgånget: 2026-05-02 ### Nyheter och förbättringar +- **Prisma-schema justerat för Product (2026-05-03)** — `Product.brand` är borttaget från Prisma-modellen och från produktuppdatering i backend eftersom kolumnen saknas i aktuell databas. Detta förhindrar Prisma-felet `The column recipe_app.Product.brand does not exist in the current database` vid t.ex. `findUnique`. - **Produkter user-scoped — ny databasarkitektur (2026-05-02)** — `Product.ownerId` är nu obligatorisk (non-nullable). Alla globala seed-produkter är borttagna. Varje produkt ägs av en enskild användare och raderas vid kontoradering (CASCADE). `seed_all.sql` innehåller nu enbart kategorier. Kvittoimportens matchning filtrerar på `ownerId = userId` från JWT. Se TEKNISK_BESKRIVNING.md för fullständig beskrivning. - **Kategorier utökade (2026-05-02)** — Nya L2/L3-noder: `Bröd & Kakor > Kondis & fika > Kaffebröd` (wienerbröd, donuts, munkar m.m.) och `Dryck > Te & choklad > Te` (chai, vanilla chai, ceylon te m.m.). Nya L3-noder under `Mejeri, ost & ägg > Allergi mejeri`: Laktosfri mjölk, Filmjölk & Yoghurt, Kvarg & Cottage cheese, Matfett, Allergi matlagning. - **Regelbaserad kategoridetektion utökad (2026-05-02)** — `ruleBasedCategorySuggestion()` täcker nu Te (te, tea, chai, tepas) och Kaffebröd (wienerbröd, donut, munk, croissant, kanelbulle, bakelse, semla m.fl.) utöver befintliga mejeri-regler. @@ -173,7 +174,7 @@ Se även TEKNISK_BESKRIVNING.md för detaljer om seed-processen. ## Prioriterade förbättringar -### 1. ICA-skraparen missar receptbild +### 1. ICA-skraparen missar receptbild ✅ **Problem:** Vid import av ICA-recept via URL hämtas inte receptbilden korrekt. - Felsök parsern i `recipe-document-converter/src/parser.ts` — kontrollera att ICA:s bild-selektor fortfarande matchar sidans HTML-struktur diff --git a/backend/prisma/schema.prisma b/backend/prisma/schema.prisma index fc67ca13..681f0c4d 100644 --- a/backend/prisma/schema.prisma +++ b/backend/prisma/schema.prisma @@ -33,7 +33,6 @@ model Product { name String normalizedName String @unique category String? - brand String? canonicalName String? isActive Boolean @default(true) status String @default("active") diff --git a/backend/src/products/dto/update-product.dto.ts b/backend/src/products/dto/update-product.dto.ts index 3480b54c..96f33c95 100644 --- a/backend/src/products/dto/update-product.dto.ts +++ b/backend/src/products/dto/update-product.dto.ts @@ -22,11 +22,6 @@ export class UpdateProductDto { @MaxLength(191) subcategory?: string; - @IsOptional() - @IsString() - @MaxLength(191) - brand?: string; - @IsOptional() @IsNumber() categoryId?: number | null; diff --git a/backend/src/products/products.service.ts b/backend/src/products/products.service.ts index 17373615..4cb83384 100644 --- a/backend/src/products/products.service.ts +++ b/backend/src/products/products.service.ts @@ -164,7 +164,6 @@ export class ProductsService { normalizedName?: string; canonicalName?: string; category?: string | null; - brand?: string | null; categoryId?: number | null; } = {}; @@ -193,10 +192,6 @@ export class ProductsService { updateData.category = data.category.trim() || null; } - if (typeof data.brand === 'string') { - updateData.brand = data.brand.trim() || null; - } - if ('categoryId' in data) { updateData.categoryId = data.categoryId ?? null; }