feat(docs): update NEXT_STEPS, README, and TEKNISK_BESKRIVNING with new features and improvements
This commit is contained in:
+12
-20
@@ -14,8 +14,11 @@
|
||||
| Snabbimport (URL/PDF/bild/ICA) | ✅ Klart |
|
||||
| Kvittoimport (Mistral AI, OCR, alias) | ✅ Klart |
|
||||
| Matplanering (veckovy, inköpslista) | ✅ Klart |
|
||||
| Matplan — portionsjustering per dag | ✅ Klart |
|
||||
| Matplan — inventariejämförelse | ✅ Klart |
|
||||
| Baslager (lista, lägg till, ta bort) | ✅ Klart |
|
||||
| Admin: Produkter (edit, merge, duplicate, restore, reset) | ✅ Klart |
|
||||
| Admin: Bulk-kategorisering | ✅ Klart |
|
||||
| Receptredigering (frontend UX) | ✅ Klart |
|
||||
| Receptbilder (upload URL) | ✅ Klart |
|
||||
| Autentisering (JWT, Auth.js v5, User-modell) | ✅ Klart |
|
||||
@@ -24,8 +27,7 @@
|
||||
| Taggning av produkter | ✅ Klart |
|
||||
| Näringsvärden på produkter | ✅ Klart (schema + API) |
|
||||
| Kategoritilldelning i admin-UI | ✅ Klart |
|
||||
| Portionsjustering | ❌ Saknas |
|
||||
| Matplan — inventariejämförelse | ❌ Saknas |
|
||||
| Kategori-seed (supplement, idempotent) | ✅ Klart |
|
||||
| Seed produktdata med kategoritilldelning | ❌ Saknas (002-seed-products.sql.disabled) |
|
||||
| Användarspecifika produkter (UserProduct) | ⚠️ Schema klart, UI basic |
|
||||
| Användarroller (user / admin) | ❌ Saknas |
|
||||
@@ -37,27 +39,17 @@
|
||||
|
||||
### 1. Seed produktdata med kategoritilldelning
|
||||
`db/init/002-seed-products.sql` är inaktiverad (`.disabled`) tills den uppdateras med rätt `categoryId` för varje produkt. Utan detta är produktdatabasen tom vid fresh install.
|
||||
- Gå igenom de ~190 produkterna och tilldela rätt kategori-ID från tabellen `Category`
|
||||
- Gå igenom de ~190 produkterna och tilldela rätt kategori-ID från tabellen `Category` (nu inklusive supplement-kategorier)
|
||||
- Aktivera filen igen genom att ta bort `.disabled`-suffixet
|
||||
- Alternativt: bygg ett admin-verktyg för bulk-kategorisering
|
||||
- Kontrollera att varje produkts `categoryId` matchar mot det ID som genereras i databasen (auto-increment — kör ett SELECT för att verifiera)
|
||||
|
||||
### 2. Portionsjustering av recept
|
||||
Recept lagras utan portionsangivelse. Lägg till ett `servings`-fält och låt användaren justera antal portioner i receptvyn — ingrediensmängderna räknas om proportionellt (t.ex. 4 → 6 pers: × 1,5).
|
||||
- **Databas:** `servings Int?` på `Recipe` i Prisma + migration
|
||||
- **Backend:** `servings` exponeras i `RecipeDto`, sätts vid create/update
|
||||
- **Frontend (`app/recipes/[id]/`):** räknare (+ / −) bredvid ingredienslistan, beräkning i klientkomponent utan extra API-anrop
|
||||
- **Receptskapande (`write/`):** lägg till grundportioner-fält
|
||||
- **Matplan (`app/matplan/`):** inköpslistan justeras efter önskat portionsantal per dag
|
||||
### 2. Matplan — djupare inventariejämförelse i frontend
|
||||
Backend-endpointen `GET /api/meal-plan/inventory-compare?from=...&to=...` returnerar ingrediensstatus per dag. Funktionen saknar dock en frontend-vy som tydligt visar "vad behöver jag handla — och vad har jag redan hemma?" aggregerat för hela veckan.
|
||||
- Visa inköpslistan med tydliga statusindikatorer: ✅ Finns hemma / ⚠️ Delvis / ❌ Saknas
|
||||
- Möjlig placering: ny flik i matplanen eller sidopanel i veckovy
|
||||
- Kräver: aggregering av `inventory-compare`-svaret per ingrediens över hela veckan
|
||||
|
||||
### 3. Matplanering — jämförelse mot inventariet
|
||||
Veckovy och inköpslista fungerar. Nästa steg är att visa vilka ingredienser på inköpslistan som redan finns hemma och i vilken mängd — liknande receptvyns inventory-preview. Implementeras via `GET /api/recipes/:id/inventory-preview` per recept, aggregerat på veckonivå.
|
||||
|
||||
### 4. Bulk-kategorisering av produkter i admin
|
||||
Admin-UI:t tillåter idag att sätta kategori per produkt. För att effektivt kategorisera hundratals produkter behövs:
|
||||
- Filtervy för okategoriserade produkter
|
||||
- Möjlighet att sätta kategori på flera produkter samtidigt (bulk-select)
|
||||
|
||||
### 5. Användarroller och användarhantering i admin
|
||||
### 3. Användarroller och användarhantering i admin
|
||||
Idag har alla inloggade användare samma behörighetsnivå. Behövs:
|
||||
- **Databas:** Lägg till `role` (enum `user` | `admin`) på `User`-modellen i Prisma + migration
|
||||
- **Backend:** Rollbaserad guard (`@Roles('admin')`) — skyddar admin-endpoints; vanliga användare nekas med 403
|
||||
|
||||
Reference in New Issue
Block a user