diff options
| author | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-07-27 18:31:26 +0200 |
|---|---|---|
| committer | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-07-27 18:31:26 +0200 |
| commit | e14717b2e7853705469275d64023bb902b195ebb (patch) | |
| tree | 2e450f7b4e864e232d06df43ad1aba1b62be4f4c /src/lib/server/db/schema.ts | |
| parent | 8224c7d6572db6ec76c4224eec1df8a538b47ad4 (diff) | |
feat: separate categories table + /categories management page
- Categories table (id, name unique) with FK from groceries.category_id
- /categories page for add/delete categories
- Main page uses native <select> dropdown for category
- Categories grouped by name in list/catalog views
- Regenerated drizzle migrations from scratch
Diffstat (limited to 'src/lib/server/db/schema.ts')
| -rw-r--r-- | src/lib/server/db/schema.ts | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/lib/server/db/schema.ts b/src/lib/server/db/schema.ts index 403ef51..1d5fd9e 100644 --- a/src/lib/server/db/schema.ts +++ b/src/lib/server/db/schema.ts @@ -1,8 +1,14 @@ import { sqliteTable, text, integer } from 'drizzle-orm/sqlite-core'; +export const categories = sqliteTable('categories', { + id: integer('id').primaryKey({ autoIncrement: true }), + name: text('name').notNull().unique(), +}); + export const groceries = sqliteTable('groceries', { id: integer('id').primaryKey({ autoIncrement: true }), name: text('name').notNull().unique(), checked: integer('checked', { mode: 'boolean' }).notNull().default(false), createdAt: text('created_at').notNull(), + categoryId: integer('category_id').references(() => categories.id), }); |
