fix: update seed documentation to clarify source and process for categories and products
This commit is contained in:
+33
-10
@@ -29,11 +29,11 @@
|
||||
| SessionProvider i root layout | ✅ Klart |
|
||||
| Användarprofil (firstName, lastName, email) | ✅ Klart |
|
||||
| Produktkategorier — hierarkisk struktur (3 nivåer) | ✅ Klart |
|
||||
| Kategori-seed (supplement, idempotent) | ✅ Klart |
|
||||
| Kategori-seed (seed_all.sql, komplett träd, enda sanningskällan) | ✅ Klart |
|
||||
| Kategoritilldelning i admin-UI | ✅ Klart |
|
||||
| Taggning av produkter | ✅ Klart |
|
||||
| Näringsvärden på produkter | ✅ Klart (schema + API) |
|
||||
| Seed produktdata med kategoritilldelning | ⚠️ Script klart, ej aktiverat i init |
|
||||
| Seed produktdata med kategoritilldelning | ✅ Klart (seed_all.sql) |
|
||||
| Användarspecifika produkter (UserProduct) | ⚠️ Schema klart, UI basic |
|
||||
| Användarroller (user / admin) | ✅ Klart |
|
||||
| Användarhantering i admin-UI | ✅ Klart |
|
||||
@@ -54,15 +54,38 @@
|
||||
|
||||
## Prioriterade förbättringar
|
||||
|
||||
### 1. Seed-data (002-seed-products.sql)
|
||||
**Mål:** Möjliggöra demo och ny server utan manuell datainmatning.
|
||||
### 1. ICA-skraparen missar receptbild
|
||||
**Problem:** Vid import av ICA-recept via URL hämtas inte receptbilden korrekt.
|
||||
|
||||
`db/init/002-seed-products.sql` är inaktiverad (`.disabled`) tills produkterna har rätt `categoryId`. Skript för kategorimappning finns i `db/seeds/`:
|
||||
- Kör `db/seeds/categories_supplement.sql` → lägger till saknade kategorier
|
||||
- Kör `db/seeds/seed_product_categories.sql` → kopplar ~190 produkter till rätt kategori
|
||||
- Verifiera att mappningarna ser rätt ut i admin-UI (filtrera på okategoriserade)
|
||||
- Generera en ny `002-seed-products.sql` med korrekt `categoryId` per rad (via `SELECT` mot live-db)
|
||||
- Ta bort `.disabled`-suffixet och testa fresh install
|
||||
- Felsök parsern i `recipe-document-converter/src/parser.ts` — kontrollera att ICA:s bild-selektor fortfarande matchar sidans HTML-struktur
|
||||
- ICA kan ha ändrat klassnamn eller lazy-load-mekanism sedan skraparen skrevs
|
||||
- Verifiera med ett konkret ICA-recept-URL och logga vad `imageUrl` returnerar
|
||||
|
||||
### 2. Seed-data ✅
|
||||
**Klart.** `db/seeds/seed_all.sql` är den enda sanningskällan för kategorier och produkter.
|
||||
|
||||
Filen:
|
||||
- TRUNCATEar `Category` och nollställer `Product.categoryId`
|
||||
- Bygger hela kategoriträdet (nivå 1–3) utan dubbletter
|
||||
- Insertar ~190 produkter (INSERT IGNORE)
|
||||
- Kopplar produkterna till rätt kategori via JOIN-subqueries
|
||||
|
||||
Körs manuellt: `docker exec -i recipe-db mariadb -uroot -p"$DB_PASS" recipe_app < db/seeds/seed_all.sql`
|
||||
|
||||
### 2. Refactor: seed_all.sql som del av fresh install
|
||||
**Mål:** Fresh install ska inte kräva ett manuellt seed-steg.
|
||||
|
||||
Nuläge:
|
||||
- `db/init/001-init.sql` (MariaDB auto-init) skapar bara en bootstrap-check-tabell
|
||||
- Prisma-migrationen `20260417310000_add_category_tree` seedar kategorier en gång, men seed_all.sql skriver över dem
|
||||
- `seed_all.sql` körs **inte** automatiskt vid deploy eller fresh install
|
||||
|
||||
Alternativ:
|
||||
- **Alt A:** Flytta seed_all.sql-logiken till `db/init/001-init.sql` — körs automatiskt av MariaDB-containern vid första start
|
||||
- **Alt B:** Skapa en `prisma/seed.ts` som körs via `prisma db seed` — standard NestJS/Prisma-mönster, kan inkluderas i deploy.sh
|
||||
- **Alt C:** Lägg till `seed_all.sql` som ett steg i `deploy.sh` (körs alltid, idempotent p.g.a. TRUNCATE+INSERT IGNORE)
|
||||
|
||||
Oavsett alternativ bör de gamla kategori-INSERTs i `20260417310000_add_category_tree/migration.sql` tas bort eller kommenteras ur för att undvika förvirring.
|
||||
|
||||
### 2. Användarroller och full användarhantering ✅
|
||||
**Klart.**
|
||||
|
||||
Reference in New Issue
Block a user