diff --git a/README.md b/README.md index b9a7e2fd..d2f50eb5 100644 --- a/README.md +++ b/README.md @@ -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 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. diff --git a/RECIPE_IMPORT_REFACTOR_PLAN.md b/RECIPE_IMPORT_REFACTOR_PLAN.md index d9fa421c..6f2a9da9 100644 --- a/RECIPE_IMPORT_REFACTOR_PLAN.md +++ b/RECIPE_IMPORT_REFACTOR_PLAN.md @@ -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 ## Bakgrund diff --git a/TEKNISK_BESKRIVNING.md b/TEKNISK_BESKRIVNING.md index 2454c105..e702c815 100644 --- a/TEKNISK_BESKRIVNING.md +++ b/TEKNISK_BESKRIVNING.md @@ -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 [NEXT_STEPS.md](NEXT_STEPS.md) för förslag pÃ¥ nästa steg i projektet. diff --git a/_archive/microservice-ai/AI-FUNKTIONER.md b/_archive/microservice-ai/AI-FUNKTIONER.md index 1e88603e..04519d8c 100644 --- a/_archive/microservice-ai/AI-FUNKTIONER.md +++ b/_archive/microservice-ai/AI-FUNKTIONER.md @@ -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 > 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. diff --git a/backend/prisma/migrations/20260506144000_add_ai_engine_enabled/migration.sql b/backend/prisma/migrations/20260506144000_add_ai_engine_enabled/migration.sql index ab4d0ab7..17c77503 100644 --- a/backend/prisma/migrations/20260506144000_add_ai_engine_enabled/migration.sql +++ b/backend/prisma/migrations/20260506144000_add_ai_engine_enabled/migration.sql @@ -1,2 +1,2 @@ -- 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; diff --git a/migrering-MSI.md b/migrering-MSI.md index edf2b345..82acea51 100644 --- a/migrering-MSI.md +++ b/migrering-MSI.md @@ -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 ## Status: ✅ GENOMFÖRD 2026-04-30