-- 004_inventory.sql — Player inventory and equipment slots. CREATE TABLE IF NOT EXISTS inventory ( id INTEGER PRIMARY KEY AUTOINCREMENT, character_id INTEGER NOT NULL REFERENCES characters(id) ON DELETE CASCADE, item_id INTEGER NOT NULL REFERENCES items(id), quantity INTEGER NOT NULL DEFAULT 1 CHECK (quantity >= 1), equipped_slot TEXT CHECK (equipped_slot IN ('weapon', 'armor', 'trinket')), acquired_at INTEGER NOT NULL ); CREATE INDEX IF NOT EXISTS idx_inventory_char ON inventory(character_id); -- One equipped item per slot per character (partial unique index). CREATE UNIQUE INDEX IF NOT EXISTS idx_inventory_equipped ON inventory(character_id, equipped_slot) WHERE equipped_slot IS NOT NULL;