feat: enhance user-scoped AI functionality with admin toggles and premium features
Test Suite / test (24.15.0) (push) Has been cancelled
Test Suite / test (24.15.0) (push) Has been cancelled
This commit is contained in:
@@ -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.
|
||||||
|
|||||||
@@ -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
@@ -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.
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user