const Database = require('better-sqlite3'); const path = require('path'); const db = new Database(path.join(__dirname, '../data/monitor.db')); // Create tables db.exec(` CREATE TABLE IF NOT EXISTS resources ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, url TEXT NOT NULL, type TEXT NOT NULL DEFAULT 'http', check_interval INTEGER DEFAULT 60000, timeout INTEGER DEFAULT 5000, enabled INTEGER DEFAULT 1, created_at DATETIME DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE IF NOT EXISTS checks ( id INTEGER PRIMARY KEY AUTOINCREMENT, resource_id INTEGER NOT NULL, status TEXT NOT NULL, response_time INTEGER, status_code INTEGER, error_message TEXT, checked_at DATETIME DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (resource_id) REFERENCES resources(id) ON DELETE CASCADE ); CREATE TABLE IF NOT EXISTS incidents ( id INTEGER PRIMARY KEY AUTOINCREMENT, resource_id INTEGER NOT NULL, started_at DATETIME DEFAULT CURRENT_TIMESTAMP, resolved_at DATETIME, notified INTEGER DEFAULT 0, FOREIGN KEY (resource_id) REFERENCES resources(id) ON DELETE CASCADE ); CREATE INDEX IF NOT EXISTS idx_checks_resource_id ON checks(resource_id); CREATE INDEX IF NOT EXISTS idx_checks_checked_at ON checks(checked_at); CREATE INDEX IF NOT EXISTS idx_incidents_resource_id ON incidents(resource_id); `); module.exports = db;