-- Migration fallout DB — tables manquantes -- À exécuter sur Vigile : docker exec -i fallout_db psql -U fallout -d fallout -- File d'actions (coeur du moteur de simulation) CREATE TABLE IF NOT EXISTS action_queue ( id SERIAL PRIMARY KEY, session_id INTEGER REFERENCES sessions(id), day_in_game INTEGER NOT NULL, hour_in_game INTEGER NOT NULL DEFAULT 0, character_id INTEGER REFERENCES characters(id), action_text TEXT NOT NULL, location VARCHAR(100), target_char_id INTEGER REFERENCES characters(id), target_location VARCHAR(100), scene_id VARCHAR(50), -- groupe les actions qui se croisent status VARCHAR(20) DEFAULT 'pending', -- pending|resolving|resolved|cancelled priority INTEGER DEFAULT 5, result_text TEXT, -- rempli après résolution par le MJ created_at TIMESTAMP DEFAULT now(), resolved_at TIMESTAMP ); CREATE INDEX IF NOT EXISTS idx_aq_session_day_hour ON action_queue(session_id, day_in_game, hour_in_game); CREATE INDEX IF NOT EXISTS idx_aq_status ON action_queue(status); CREATE INDEX IF NOT EXISTS idx_aq_scene ON action_queue(scene_id); -- Lore avancée — résumés narratifs générés par le LLM toutes les 24h de jeu CREATE TABLE IF NOT EXISTS lore_avancee ( id SERIAL PRIMARY KEY, session_id INTEGER REFERENCES sessions(id), day_start INTEGER NOT NULL, day_end INTEGER NOT NULL, title VARCHAR(200), content TEXT NOT NULL, -- texte narratif généré par MJ 14b factions_involved TEXT[], locations_involved TEXT[], chroma_id VARCHAR(100), -- ref chunk fallout_canon dans ChromaDB created_at TIMESTAMP DEFAULT now() ); CREATE INDEX IF NOT EXISTS idx_la_session ON lore_avancee(session_id, day_start); -- Vérification SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' ORDER BY table_name;