diff options
| author | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-07-29 10:31:36 +0200 |
|---|---|---|
| committer | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-07-29 10:31:36 +0200 |
| commit | 684d3c954e3577a6488101bf5ee85e36439fd53c (patch) | |
| tree | e9404b8eea57e811faaa9821675376f309d649e9 /src/lib | |
| parent | 94212274cecf4da5f94b246a7ac9ab87077fb77f (diff) | |
feat: multi-select and bulk-update category from catalog
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/server/services/groceries.ts | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/lib/server/services/groceries.ts b/src/lib/server/services/groceries.ts index db9e736..3c6de70 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 } from 'drizzle-orm'; +import { eq, desc, inArray } 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'; @@ -109,6 +109,25 @@ export async function updateGrocery( .where(eq(groceries.id, id)); } +export async function updateGroceryCategory( + id: number, + categoryId: number | null, + db = defaultDb, +): Promise<void> { + await db.update(groceries).set({ categoryId }).where(eq(groceries.id, id)); +} + +export async function bulkUpdateGroceryCategory( + ids: number[], + categoryId: number | null, + db = defaultDb, +): Promise<void> { + await db + .update(groceries) + .set({ categoryId }) + .where(inArray(groceries.id, ids)); +} + export async function deleteGrocery(id: number, db = defaultDb): Promise<void> { await db.delete(groceries).where(eq(groceries.id, id)); } |
