feat: enhance recipe creation process; add editable fields for ingredients and support for alternative ingredients in review step
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:
@@ -97,6 +97,31 @@ Funktionen i `receipt-import.service.ts` matchar kvittonamn mot nyckelord och re
|
||||
|
||||
---
|
||||
|
||||
## Nyheter och forbattringar (2026-05-04)
|
||||
|
||||
- **Receptimport parser centraliserad:** parsinglogik for markdownrecept ar flyttad till en gemensam utility i backend (`src/common/utils/recipe-parser.ts`) och duplicerad parserkod i recipes-service ar borttagen.
|
||||
- **Parser prestanda/robusthet:** regex och enhetslista ar lyfta till modulniva, braktal och intervall (ex. `ca 600-700 g`) hanteras konsekvent, och ingrediensnamn med `eller` delas upp i alternativ.
|
||||
- **Alternativa ingredienser (Option A i drift):** `RecipeIngredient` har nu `alternativeProductIds` (JSON) for att lagra alternativa produktval per ingrediensrad.
|
||||
- **Validering vid create/update av recept:** backend validerar att valda produkter ar aktiva innan recept sparas.
|
||||
- **Atomar uppdatering av ingredienser:** `update()` for recept kor nu inom Prisma-transaction (delete + create/update i samma transaktion).
|
||||
- **Sakrare felhantering vid bildimport:** om receptskapande fallerar efter nedladdning av bild stadas orphan-filer bort.
|
||||
- **Ownerless recept hardening:** legacy-recept utan owner claimas av forsta redigerande anvandare; recept med annan owner fortsatter att vara blockerade for obehoriga.
|
||||
- **Inventory preview med alternativ:** lagerkoll kan rakna in alternativa produkter nar primar produkt saknas.
|
||||
- **Testning:** nya enhetstester for recipe-parser lagda; total testsvit verifierad gron (57 tester).
|
||||
|
||||
### Prisma migration driftlarning (2026-05-04)
|
||||
|
||||
Vid deploy av migrationen `20260504220420_add_alternative_product_ids` uppstod ett produktionsstopp med Prisma P3009/P3018. Rotorsaker var en tidigare failed migration samt ogiltig SQL-korning i miljo.
|
||||
|
||||
Praktisk recovery-sekvens som verifierades:
|
||||
1. Kor `prisma migrate resolve --rolled-back <migration_name>` i samma runtime-miljo som appen (containern), inte i ett shell utan korrekt DB-konfiguration.
|
||||
2. Verifiera `DATABASE_URL` i runtime (container) innan ny deploy.
|
||||
3. Kor `prisma migrate deploy` igen.
|
||||
4. Om schema redan ar uppdaterat men migrationshistorik halkat efter: markera migrationen som `--applied` och deploya pa nytt.
|
||||
|
||||
Driftrekommendation:
|
||||
- Kor migrationskommandon via app-containern i compose-stacken for att undvika skillnader i Prisma-version, env-laddning och DNS/hostnamn.
|
||||
|
||||
## Nyheter och förbättringar (2026-04-30)
|
||||
|
||||
- **Microservice-importer integrerad** — `importer-api` körs nu som intern Docker-tjänst i `recipe-app/compose.yml`. All URL-skrapning, OCR, PDF-parsning och AI-kvittoparsning delegeras dit. `recipe-api` behåller Levenshtein-matchning, produktdatabas och AI-kategorisering. Se [migrering-MSI.md](migrering-MSI.md) för fullständig lista över ändrade filer.
|
||||
|
||||
Reference in New Issue
Block a user