aboutsummaryrefslogtreecommitdiff
path: root/src/routes/+page.server.ts
diff options
context:
space:
mode:
authorMartin Kagamino Lehoux <martin@lehoux.net>2026-07-27 20:40:10 +0200
committerMartin Kagamino Lehoux <martin@lehoux.net>2026-07-27 20:40:10 +0200
commit3a7f9e40edb58b206d99a5d2e38ba34621227155 (patch)
tree4f140de6ef25bc25176b2f0c8d24c91a9ba28cc5 /src/routes/+page.server.ts
parente075698891d653330b5d5d0f80c2c3495aee6262 (diff)
feat: show best reference (by quality score) on each item in list view
Diffstat (limited to 'src/routes/+page.server.ts')
-rw-r--r--src/routes/+page.server.ts14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/routes/+page.server.ts b/src/routes/+page.server.ts
index 6d547e6..27ecbe1 100644
--- a/src/routes/+page.server.ts
+++ b/src/routes/+page.server.ts
@@ -1,21 +1,29 @@
import { fail } from '@sveltejs/kit';
import { db } from '$lib/server/db';
-import { groceries, categories } from '$lib/server/db/schema';
-import { eq, desc } from 'drizzle-orm';
+import { groceries, categories, references } from '$lib/server/db/schema';
+import { eq, desc, asc } from 'drizzle-orm';
import type { Actions, PageServerLoad } from './$types';
export const load: PageServerLoad = async () => {
- const [items, cats] = await Promise.all([
+ const [items, cats, refs] = await Promise.all([
db.select().from(groceries).orderBy(desc(groceries.createdAt)),
db.select().from(categories).orderBy(desc(categories.name)),
+ db.select().from(references).orderBy(desc(references.qualityScore)),
]);
const catMap = new Map(cats.map((c) => [c.id, c.name]));
+ const bestRef = new Map<number, (typeof refs)[number]>();
+ for (const ref of refs) {
+ if (!bestRef.has(ref.groceryId)) {
+ bestRef.set(ref.groceryId, ref);
+ }
+ }
return {
items: items.map((i) => ({
...i,
categoryName: i.categoryId ? (catMap.get(i.categoryId) ?? null) : null,
+ bestRef: bestRef.get(i.id) ?? null,
})),
categories: cats,
};