47 lines
2.0 KiB
SQL
47 lines
2.0 KiB
SQL
-- 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;
|