| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- -- Users table
- CREATE TABLE IF NOT EXISTS users (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- username TEXT NOT NULL UNIQUE,
- email TEXT UNIQUE,
- password_hash TEXT NOT NULL,
- role TEXT NOT NULL DEFAULT 'user',
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP
- );
- -- God Logs table
- CREATE TABLE IF NOT EXISTS god_logs (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- god_user_id INTEGER NOT NULL,
- action TEXT NOT NULL,
- details TEXT,
- timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
- FOREIGN KEY (god_user_id) REFERENCES users(id) ON DELETE CASCADE
- );
- -- Personas table
- CREATE TABLE IF NOT EXISTS personas (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- owner_id INTEGER NOT NULL,
- name TEXT NOT NULL,
- title TEXT,
- bio TEXT,
- theories TEXT, -- JSON string
- stance TEXT,
- system_prompt TEXT,
- is_public BOOLEAN DEFAULT 0,
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
- FOREIGN KEY (owner_id) REFERENCES users(id) ON DELETE CASCADE
- );
- -- Moderators table
- CREATE TABLE IF NOT EXISTS moderators (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- name TEXT NOT NULL,
- title TEXT DEFAULT '主持人',
- bio TEXT,
- system_prompt TEXT,
- greeting_template TEXT,
- closing_template TEXT,
- summary_template TEXT,
- creator_id INTEGER NOT NULL,
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
- FOREIGN KEY (creator_id) REFERENCES users(id) ON DELETE CASCADE
- );
- -- Forums table
- CREATE TABLE IF NOT EXISTS forums (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- topic TEXT NOT NULL,
- creator_id INTEGER NOT NULL,
- moderator_id INTEGER,
- status TEXT DEFAULT 'active',
- summary_history TEXT DEFAULT '[]',
- ablation_flags TEXT DEFAULT '{}',
- start_time DATETIME,
- end_time DATETIME,
- duration_minutes INTEGER DEFAULT 30,
- FOREIGN KEY (creator_id) REFERENCES users(id) ON DELETE CASCADE,
- FOREIGN KEY (moderator_id) REFERENCES moderators(id)
- );
- -- Forum Participants table
- CREATE TABLE IF NOT EXISTS forum_participants (
- forum_id INTEGER NOT NULL,
- persona_id INTEGER NOT NULL,
- thoughts_history TEXT DEFAULT '[]',
- PRIMARY KEY (forum_id, persona_id),
- FOREIGN KEY (forum_id) REFERENCES forums(id) ON DELETE CASCADE,
- FOREIGN KEY (persona_id) REFERENCES personas(id) ON DELETE CASCADE
- );
- -- Messages table
- CREATE TABLE IF NOT EXISTS messages (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- forum_id INTEGER NOT NULL,
- persona_id INTEGER,
- moderator_id INTEGER,
- speaker_name TEXT NOT NULL,
- content TEXT NOT NULL,
- turn_count INTEGER DEFAULT 0,
- thought TEXT,
- timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
- FOREIGN KEY (forum_id) REFERENCES forums(id) ON DELETE CASCADE,
- FOREIGN KEY (persona_id) REFERENCES personas(id),
- FOREIGN KEY (moderator_id) REFERENCES moderators(id)
- );
- -- Observations table
- CREATE TABLE IF NOT EXISTS observations (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- user_id INTEGER NOT NULL,
- forum_id INTEGER NOT NULL,
- joined_at DATETIME DEFAULT CURRENT_TIMESTAMP,
- left_at DATETIME,
- FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
- FOREIGN KEY (forum_id) REFERENCES forums(id) ON DELETE CASCADE
- );
- -- System Logs table
- CREATE TABLE IF NOT EXISTS system_logs (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- forum_id INTEGER NOT NULL,
- level TEXT DEFAULT 'info',
- source TEXT,
- content TEXT NOT NULL,
- timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
- FOREIGN KEY (forum_id) REFERENCES forums(id) ON DELETE CASCADE
- );
|