import { enhance } from "@zenstackhq/runtime"; import { db } from "~/utils/db.server"; import { DrinkType, Manufacturer } from "@prisma/client"; export async function findIdFromSlug(slug:string | undefined) : Promise { if(slug){ const id = Number(slug); if(id) return id; const drink = await db.drink.findUnique({where: {slug: slug}, select: {id: true}}); return drink?.id; } return undefined; } export async function findManufacturersFromSearch(searchParams: URLSearchParams) : Promise { const dbe = enhance(db); var result : Manufacturer[] = []; if(searchParams.has("drink")){ result = result.concat(await dbe.manufacturer.findMany({ orderBy: {name: "asc"}, where: {drinks: { some: { type: { in: searchParams.getAll("drink").map((str) => {return DrinkType[str as keyof typeof DrinkType]})}}}} })); } else { result = result.concat(await dbe.manufacturer.findMany({ orderBy: {name: "asc"}, where: {NOT: {drinks: {none: {}}}} })); } return result; }