aboutsummaryrefslogtreecommitdiff
path: root/src/lib/server/services/groceries.ts
diff options
context:
space:
mode:
authorMartin Kagamino Lehoux <martin@lehoux.net>2026-07-29 15:01:38 +0200
committerMartin Kagamino Lehoux <martin@lehoux.net>2026-07-29 15:01:38 +0200
commit63e003a718782e2ca3ffcb2d11b0be97560a7259 (patch)
treee38ed25161981ec33aebc7d76e9303e547d42768 /src/lib/server/services/groceries.ts
parent684d3c954e3577a6488101bf5ee85e36439fd53c (diff)
feat: drag-to-reorder categories with persistent order
Diffstat (limited to 'src/lib/server/services/groceries.ts')
-rw-r--r--src/lib/server/services/groceries.ts12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/lib/server/services/groceries.ts b/src/lib/server/services/groceries.ts
index 3c6de70..8ffcde3 100644
--- a/src/lib/server/services/groceries.ts
+++ b/src/lib/server/services/groceries.ts
@@ -1,6 +1,6 @@
import { db as defaultDb } from '$lib/server/db';
import { groceries, categories, references } from '$lib/server/db/schema';
-import { eq, desc, inArray } from 'drizzle-orm';
+import { eq, desc, inArray, asc } from 'drizzle-orm';
import type { LibSQLDatabase } from 'drizzle-orm/libsql';
import type * as schema from '$lib/server/db/schema';
import type { Category, Grocery, Reference } from './types';
@@ -21,7 +21,10 @@ export async function loadUnchecked(
.from(groceries)
.where(eq(groceries.checked, false))
.orderBy(desc(groceries.createdAt)),
- db.select().from(categories).orderBy(desc(categories.name)),
+ db
+ .select()
+ .from(categories)
+ .orderBy(asc(categories.order), asc(categories.name)),
db.select().from(references).orderBy(desc(references.qualityScore)),
]);
@@ -36,7 +39,10 @@ export async function loadAll(
): Promise<{ items: EnrichedGrocery[]; categories: Category[] }> {
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(categories)
+ .orderBy(asc(categories.order), asc(categories.name)),
db.select().from(references).orderBy(desc(references.qualityScore)),
]);