Add Gear entity to track brewing equipment (grinders and brewers) with complete domain layer implementation. Database changes: - migrations/0006_add_gear.sql: Create gear table with category CHECK constraint and indexes - migrations/0007_update_timeline_for_gear.sql: Document 'gear' as valid timeline entity type Domain layer: - Add GearId typed ID wrapper - Create domain/gear.rs with: - GearCategory enum (Grinder/Brewer) with string conversion methods - Gear entity with make, model, notes fields - NewGear and UpdateGear DTOs - GearFilter for category-based filtering - GearSortKey with Make (default), Model, Category, CreatedAt options - Add GearRepository trait to domain/repositories.rs with standard CRUD operations - Register gear module in domain/mod.rs This follows the same architectural pattern as the Bag entity.
11 lines
370 B
SQL
11 lines
370 B
SQL
CREATE TABLE gear (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
category TEXT NOT NULL CHECK (category IN ('grinder', 'brewer')),
|
|
make TEXT NOT NULL,
|
|
model TEXT NOT NULL,
|
|
notes TEXT,
|
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE INDEX idx_gear_category ON gear(category);
|