package manifest import ( "database/sql" ) type sqliteLogWriter struct { db *sql.DB } func NewSQLiteLogWriter(db *sql.DB) (LogWriter, error) { _, err := db.Exec(`CREATE TABLE IF NOT EXISTS logs ( id INTEGER PRIMARY KEY AUTOINCREMENT, ts INTEGER NOT NULL, level TEXT NOT NULL, event TEXT NOT NULL, asset_id TEXT, album TEXT, filename TEXT, size INTEGER, cloud TEXT, duration_ms INTEGER, message TEXT )`) if err != nil { return nil, err } _, _ = db.Exec(`CREATE INDEX IF NOT EXISTS idx_logs_ts ON logs(ts)`) _, _ = db.Exec(`CREATE INDEX IF NOT EXISTS idx_logs_event ON logs(event)`) return &sqliteLogWriter{db: db}, nil } func (w *sqliteLogWriter) Log(e LogEntry) { if w.db == nil { return } w.db.Exec(`INSERT INTO logs (ts, level, event, asset_id, album, filename, size, cloud, duration_ms, message) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, e.Timestamp, e.Level, e.Event, e.AssetID, e.Album, e.Filename, e.Size, e.Cloud, e.DurationMs, e.Message) } func (w *sqliteLogWriter) Close() { _ = w }