fix(vad-ska-vi-ata): fungerande titelsok, hogtider under sokrutan, ratta bakverk, ta bort separata bladdra-lankar

- Sok fungerar nu: what-to-eat tar ?search= och filtrerar recept pa titel/
  beskrivning BLAND ALLA recept (t.ex. 'pannkaka' hittar pannkakor), oavsett
  vald flik. Sokrutan skickar nu search i stallet for craving.
- Hogtids-/sasongsknapparna (kraftskiva, grill, skolstart) ligger nu direkt
  UNDER sokrutan, inte nere bland recept-forslagen.
- Saffransbullar + lussekatter ur 'Frukost' (mealTypes dessert+breakfast ->
  dessert). Bakverk hor inte till frukost i Sverige.
- Bort med 'Alla recept & sok'-lanken pa forstasidan och 'Bladdra bland recept'
  pa Hemma - allt nas nu via flikarna/soket pa 'Vad ska vi ata'.

Full typecheck gron.
This commit is contained in:
Claude
2026-08-19 12:58:59 +00:00
parent 3d8bd68fe0
commit dc5df13f25
5 changed files with 68 additions and 58 deletions
+11 -4
View File
@@ -1,5 +1,5 @@
import type { FastifyInstance } from "fastify";
import { and, desc, eq, gt, inArray, isNull, or, sql } from "drizzle-orm";
import { and, desc, eq, gt, ilike, inArray, isNull, or, sql } from "drizzle-orm";
import { schema } from "@app/database";
import type { MemoryItem, TasteSignal } from "@app/shared-types";
import { whatToEatQuerySchema } from "@app/validation";
@@ -124,9 +124,16 @@ export async function recommendationRoutes(app: FastifyInstance) {
.where(
and(
eq(schema.recipes.status, "published"),
q.tag
? sql`${q.tag} = ANY(${schema.recipes.tags})`
: sql`${q.mealType} = ANY(${schema.recipes.mealTypes})`,
// Titelsök (t.ex. "pannkaka") söker BLAND ALLA recept, oavsett flik.
// Utan sökterm filtreras i stället på flikens tagg/måltidstyp.
q.search
? or(
ilike(schema.recipes.titleSv, `%${q.search}%`),
ilike(schema.recipes.descriptionSv, `%${q.search}%`),
)
: q.tag
? sql`${q.tag} = ANY(${schema.recipes.tags})`
: sql`${q.mealType} = ANY(${schema.recipes.mealTypes})`,
),
)
.limit(200);