package sqlite import ( "database/sql" "gitea.k3s.k0.nu/tools/photocli/internal/manifest/types" ) type LogWriter struct { db *sql.DB } func NewLogWriter(db *sql.DB) (types.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 &LogWriter{db: db}, nil } func (w *LogWriter) Log(e types.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 *LogWriter) Close() { _ = w }