aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorMartin Kagamino Lehoux <martin@lehoux.net>2026-07-27 19:53:11 +0200
committerMartin Kagamino Lehoux <martin@lehoux.net>2026-07-27 19:53:11 +0200
commite075698891d653330b5d5d0f80c2c3495aee6262 (patch)
treef0b04b3d003fb49f820d1da86b811a9bd05b9a56 /src/lib
parent2ded7d512470b2e9faabf2f61a0a97eef95a6f89 (diff)
feat: product references + grocery detail page
- references table (brand, price, unit, quality_score) with FK to groceries - /grocery/[id] page for managing references per item - Unit dropdown (€/kg, €/L, €/u) defaulting to €/kg - → link on all items navigates to detail page - Delete item moved from catalog to detail page
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/server/db/schema.ts13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/lib/server/db/schema.ts b/src/lib/server/db/schema.ts
index 1d5fd9e..9cd6af8 100644
--- a/src/lib/server/db/schema.ts
+++ b/src/lib/server/db/schema.ts
@@ -1,4 +1,4 @@
-import { sqliteTable, text, integer } from 'drizzle-orm/sqlite-core';
+import { sqliteTable, text, integer, real } from 'drizzle-orm/sqlite-core';
export const categories = sqliteTable('categories', {
id: integer('id').primaryKey({ autoIncrement: true }),
@@ -12,3 +12,14 @@ export const groceries = sqliteTable('groceries', {
createdAt: text('created_at').notNull(),
categoryId: integer('category_id').references(() => categories.id),
});
+
+export const references = sqliteTable('references', {
+ id: integer('id').primaryKey({ autoIncrement: true }),
+ groceryId: integer('grocery_id')
+ .notNull()
+ .references(() => groceries.id, { onDelete: 'cascade' }),
+ brand: text('brand').notNull(),
+ price: real('price'),
+ unit: text('unit'),
+ qualityScore: integer('quality_score'),
+});