refactor(products): remove brand field from Product model and update related DTO and service

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
Nils-Johan Gynther
2026-05-03 16:01:09 +02:00
parent dbd8c6d849
commit 87eff6a37f
4 changed files with 2 additions and 12 deletions
+2 -1
View File
@@ -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
-1
View File
@@ -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")
@@ -22,11 +22,6 @@ export class UpdateProductDto {
@MaxLength(191)
subcategory?: string;
@IsOptional()
@IsString()
@MaxLength(191)
brand?: string;
@IsOptional()
@IsNumber()
categoryId?: number | null;
-5
View File
@@ -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;
}