feat: enhance user-scoped AI functionality with admin toggles and premium features
Test Suite / test (24.15.0) (push) Has been cancelled

This commit is contained in:
Nils-Johan Gynther
2026-05-06 09:29:16 +02:00
parent 04b1fc3024
commit 8200045438
6 changed files with 74 additions and 2 deletions
+11
View File
@@ -1,3 +1,14 @@
# Session 2026-05-06: User-scoped AI-fallback, admin-toggles och premium-funktioner
Under denna session har Recipe App fått:
- **User-scoped AI-fallback:** AI-förslag för ingrediens- och kategorimatchning aktiveras nu per användare (premium). Endast användare med premium-tillgång får AI-hints vid import.
- **Admin-toggles:** Admin kan slå på/av AI-funktioner per användare via backend och UI.
- **Premium-scope:** Flutter och backend respekterar premium-flagga och AI-tillgång i alla flöden.
- **Rematch och manuell produkt:** Flutter har stöd för ommatchning och manuell produkt vid import.
- **Arkitektur:** Fallback-first AI, strikt separation av analys/import/matchning, user-scoped produktdata.
Se [TEKNISK_BESKRIVNING.md](TEKNISK_BESKRIVNING.md) för teknisk genomgång och [NEXT_STEPS.md](NEXT_STEPS.md) för roadmap.
# Recipe App # Recipe App
En fullstack-applikation för hantering av hemmavaror och recept. Håll koll på vad du har hemma, spara recept och se direkt om du har allt du behöver för att laga en rätt. En fullstack-applikation för hantering av hemmavaror och recept. Håll koll på vad du har hemma, spara recept och se direkt om du har allt du behöver för att laga en rätt.
+17
View File
@@ -1,3 +1,20 @@
# Session 2026-05-06: Refaktor och user-scoped AI
Denna session har genomfört:
- **User-scoped AI-fallback:** AI-förslag för ingrediens- och kategorimatchning är nu individuellt aktiverbara per användare (premium).
- **Admin-toggles:** Backend och UI har stöd för att admin kan slå på/av AI per användare.
- **Premium-scope:** Flutter och backend respekterar premium-flagga och AI-tillgång i alla flöden.
- **Rematch och manuell produkt:** Flutter har stöd för ommatchning och manuell produkt vid import.
- **Lessons learned:**
- Nullable propagation i Prisma och DTO:er kräver noggrannhet.
- Fallback-first AI och tydlig separation av analyskontrakt ger robustare flöden.
- User-scoped features kräver ownerId/userId-filter i all logik.
- Manuella migrationer kan krävas vid DB-problem (se migrering-MSI.md).
Se även:
- [TEKNISK_BESKRIVNING.md](TEKNISK_BESKRIVNING.md) för teknisk genomgång.
- [AI-FUNKTIONER.md](_archive/microservice-ai/AI-FUNKTIONER.md) för AI-översikt.
# Plan för omarbetning av receptimport # Plan för omarbetning av receptimport
## Bakgrund ## Bakgrund
+22 -1
View File
@@ -1,4 +1,25 @@
# Teknisk beskrivning av Recipe App # Session 2026-05-06: User-scoped AI-fallback, admin-toggles och refaktor
Denna session har genomfört en omfattande refaktor och utbyggnad av AI-funktionalitet i Recipe App, med fokus på:
- **User-scoped AI-fallback:** AI-förslag för ingrediensmatchning (receptimport) och kategorimatchning (kvittoimport) är nu individuellt aktiverbara per användare. Endast användare med premium-tillgång (adminstyrd toggle) får AI-hints vid import.
- **Admin-toggles:** Ny endpoint och backendlogik för att admin ska kunna slå på/av AI-funktioner per användare. Prisma-schema utökat med `aiEngineEnabled` på User, migration och endpoint (`PATCH /users/:id/ai-engine`).
- **Premium-scope:** Flutter och backend respekterar nu premium-flagga och AI-tillgång i alla relevanta flöden. Endast premiumanvändare får AI-förslag i UI.
- **Rematch och manuell produkt:** Flutter har fått stöd för att trigga ommatchning (rematch) av ingredienser och för att skapa produkter manuellt direkt från importgranskningen.
- **Arkitektur:** All AI-fallback är fallback-first och aldrig blockerande för import eller sparande. Backend och frontend är strikt separerade vad gäller analys, import och matchning.
- **Lessons learned:**
- Nullable propagation i Prisma och DTO:er kräver noggrannhet för att undvika runtime-fel.
- Fallback-first AI och tydlig separation av analyskontrakt ger robustare flöden och bättre UX.
- User-scoped features kräver att all produkt- och matchningslogik filtrerar på ownerId/userId.
- Admin-toggles och premium-scope måste vara synkade i backend, UI och auth.
- Manuella migrationer kan krävas vid DB-connectivity-problem (se migrering-MSI.md).
Se även:
- [AI-FUNKTIONER.md](_archive/microservice-ai/AI-FUNKTIONER.md) för detaljerad AI-översikt och modellval.
- [RECIPE_IMPORT_REFACTOR_PLAN.md](RECIPE_IMPORT_REFACTOR_PLAN.md) för fullständig refaktorplan.
- [NEXT_STEPS.md](NEXT_STEPS.md) för roadmap och prioriteringar.
# Teknisk beskrivning av Recipe App
> Se [README.md](README.md) för användarinformation och kom-igång-guide. > Se [README.md](README.md) för användarinformation och kom-igång-guide.
> Se [NEXT_STEPS.md](NEXT_STEPS.md) för förslag på nästa steg i projektet. > Se [NEXT_STEPS.md](NEXT_STEPS.md) för förslag på nästa steg i projektet.
+12
View File
@@ -1,3 +1,15 @@
# Session 2026-05-06: User-scoped AI, admin-toggles och premium
Denna session:
- Införde user-scoped AI-förslag för ingrediens- och kategorimatchning (premium-funktion).
- Admin kan nu slå på/av AI per användare via backend och UI.
- Flutter och backend respekterar premium-flagga och AI-tillgång i alla flöden.
- Lessons learned: Fallback-first AI, tydlig separation av analys, och ownerId/userId-filter i all logik ger robustare system.
Se även:
- [TEKNISK_BESKRIVNING.md](../../TEKNISK_BESKRIVNING.md) för teknisk genomgång.
- [RECIPE_IMPORT_REFACTOR_PLAN.md](../../RECIPE_IMPORT_REFACTOR_PLAN.md) för refaktorplan.
# AI-funktioner i Recipe-App: Premium-funktioner och rekommenderade modeller # AI-funktioner i Recipe-App: Premium-funktioner och rekommenderade modeller
> Se [README.md](README.md) för funktionsöversikt, [TEKNISK_BESKRIVNING.md](TEKNISK_BESKRIVNING.md) för teknisk arkitektur och [NEXT_STEPS.md](NEXT_STEPS.md) för prioriterade nästa steg. > Se [README.md](README.md) för funktionsöversikt, [TEKNISK_BESKRIVNING.md](TEKNISK_BESKRIVNING.md) för teknisk arkitektur och [NEXT_STEPS.md](NEXT_STEPS.md) för prioriterade nästa steg.
@@ -1,2 +1,2 @@
-- AddColumn aiEngineEnabled to User table -- AddColumn aiEngineEnabled to User table
ALTER TABLE "User" ADD COLUMN "aiEngineEnabled" BOOLEAN NOT NULL DEFAULT false; ALTER TABLE `User` ADD COLUMN `aiEngineEnabled` BOOLEAN NOT NULL DEFAULT false;
+11
View File
@@ -1,3 +1,14 @@
# Session 2026-05-06: Migreringar för user-scoped AI och premium
Denna session:
- Lade till `aiEngineEnabled` på User i Prisma-schema och migrerade databasen (manuell SQL vid behov).
- Implementerade endpoint och logik för admin att toggla AI per användare.
- Säkerställde att alla AI-funktioner är user-scoped och premiumstyrda.
- Lessons learned: Vid DB-connectivity-problem krävs ibland manuell migration och resolve (se driftsekvens i TEKNISK_BESKRIVNING.md).
Se även:
- [TEKNISK_BESKRIVNING.md](TEKNISK_BESKRIVNING.md) för drift- och migreringsdetaljer.
# Migrering: Import-funktion → microservice-importer # Migrering: Import-funktion → microservice-importer
## Status: ✅ GENOMFÖRD 2026-04-30 ## Status: ✅ GENOMFÖRD 2026-04-30