diff options
| author | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-07-27 19:53:11 +0200 |
|---|---|---|
| committer | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-07-27 19:53:11 +0200 |
| commit | e075698891d653330b5d5d0f80c2c3495aee6262 (patch) | |
| tree | f0b04b3d003fb49f820d1da86b811a9bd05b9a56 /src/lib/server/db | |
| parent | 2ded7d512470b2e9faabf2f61a0a97eef95a6f89 (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/server/db')
| -rw-r--r-- | src/lib/server/db/schema.ts | 13 |
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'), +}); |
