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

This commit is contained in:
Nils-Johan Gynther
2026-05-04 22:29:29 +02:00
parent 505c89c731
commit dba3c63ec4
3 changed files with 34 additions and 0 deletions
+25
View File
@@ -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.