Urlaubsmodus implementiert - Globale Checkbox zum Deaktivieren des Schedulers

This commit is contained in:
2025-08-22 08:35:13 +02:00
parent 0488e4ec47
commit 1dfa0c9b32
6 changed files with 194 additions and 1 deletions

View File

@@ -56,6 +56,27 @@ func InitDB() (*DB, error) {
return nil, err
}
// Settings-Tabelle erstellen
createSettingsTableSQL := `
CREATE TABLE IF NOT EXISTS settings (
id INTEGER PRIMARY KEY AUTOINCREMENT,
key TEXT NOT NULL UNIQUE,
value TEXT NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
);`
_, err = db.Exec(createSettingsTableSQL)
if err != nil {
return nil, err
}
// Standard-Einstellungen setzen
_, err = db.Exec("INSERT OR IGNORE INTO settings (key, value) VALUES ('vacation_mode', 'false')")
if err != nil {
return nil, err
}
// Füge IP-Spalte hinzu, falls sie nicht existiert
_, err = db.Exec("ALTER TABLE pcs ADD COLUMN ip TEXT DEFAULT ''")
if err != nil {
@@ -267,3 +288,32 @@ func (db *DB) GetRecentLogsByPCID(pcID int) ([]models.LogEvent, error) {
return logs, nil
}
// GetSetting holt eine Einstellung aus der Datenbank
func (db *DB) GetSetting(key string) (string, error) {
var value string
err := db.QueryRow("SELECT value FROM settings WHERE key = ?", key).Scan(&value)
if err != nil {
return "", err
}
return value, nil
}
// SetSetting setzt eine Einstellung in der Datenbank
func (db *DB) SetSetting(key, value string) error {
now := time.Now()
_, err := db.Exec(
"INSERT OR REPLACE INTO settings (key, value, updated_at) VALUES (?, ?, ?)",
key, value, now,
)
return err
}
// IsVacationModeEnabled prüft, ob der Urlaubsmodus aktiviert ist
func (db *DB) IsVacationModeEnabled() (bool, error) {
value, err := db.GetSetting("vacation_mode")
if err != nil {
return false, err
}
return value == "true", nil
}