CREATE TABLE users ( id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT NOT NULL UNIQUE, password TEXT NOT NULL ); CREATE TABLE users_meta ( id INTEGER PRIMARY KEY AUTOINCREMENT, user_id INTEGER NOT NULL, name TEXT, email TEXT, timezone TEXT, avatar TEXT, bio TEXT, FOREIGN KEY (user_id) REFERENCES users(id) ); CREATE TABLE users_rights ( user_id INTEGER, right_id INTEGER, PRIMARY KEY (user_id, right_id), FOREIGN KEY (user_id) REFERENCES users(id), FOREIGN KEY (right_id) REFERENCES rights(id) ); CREATE TABLE rights ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL UNIQUE ); CREATE TABLE logs ( id INTEGER PRIMARY KEY AUTOINCREMENT, user_id INTEGET NOT NULL, time TEXT DEFAULT (DATETIME('now')), scope TEXT NOT NULL, message TEXT NOT NULL, FOREIGN KEY (user_id) REFERENCES users(id) ); CREATE TABLE platforms ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL UNIQUE, jitsi_url TEXT NOT NULL, jilo_database TEXT NOT NULL ); CREATE TABLE hosts ( id INTEGER PRIMARY KEY AUTOINCREMENT, address TEXT NOT NULL, port INTEGER NOT NULL, platform_id INTEGER NOT NULL, name TEXT, FOREIGN KEY(platform_id) REFERENCES platforms(id) ); CREATE TABLE jilo_agents ( id INTEGER PRIMARY KEY AUTOINCREMENT, platform_id INTEGER NOT NULL, agent_type_id INTEGER NOT NULL, url TEXT NOT NULL, secret_key TEXT, check_period INTEGER DEFAULT 0, FOREIGN KEY (platform_id) REFERENCES platforms(id), FOREIGN KEY (agent_type_id) REFERENCES jilo_agent_types(id) ); CREATE TABLE jilo_agent_types ( id INTEGER PRIMARY KEY AUTOINCREMENT, description TEXT, endpoint TEXT ); CREATE TABLE jilo_agent_checks ( id INTEGER PRIMARY KEY AUTOINCREMENT, agent_id INTEGER, timestamp DATETIME DEFAULT CURRENT_TIMESTAMP, status_code INTEGER, response_time_ms INTEGER, response_content TEXT, FOREIGN KEY (agent_id) REFERENCES jilo_agents(id) );