package store import ( "database/sql" "fmt" _ "github.com/mattn/go-sqlite3" ) // Store kapselt den Datenbankzugriff. type Store struct { db *sql.DB } // New erstellt einen neuen Store und konfiguriert SQLite. func New(dbPath string) (*Store, error) { db, err := sql.Open("sqlite3", dbPath+"?_journal_mode=WAL&_foreign_keys=ON") if err != nil { return nil, fmt.Errorf("Datenbank öffnen: %w", err) } if err := db.Ping(); err != nil { return nil, fmt.Errorf("Datenbank-Verbindung prüfen: %w", err) } return &Store{db: db}, nil } // DB gibt die zugrundeliegende Datenbankverbindung zurück (für Migrations). func (s *Store) DB() *sql.DB { return s.db } // Close schliesst die Datenbankverbindung. func (s *Store) Close() error { return s.db.Close() }