settingsMetadataGateway->getValue(SettingKeys::SYSTEM_AUDIT_ENABLED_KEY) ?? ''))); if ($value === '') { return self::SYSTEM_AUDIT_ENABLED_FALLBACK; } return in_array($value, ['1', 'true', 'yes', 'on'], true); } public function setSystemAuditEnabled(bool $enabled, ?string $description = null): bool { $desc = $description ?? 'setting.system_audit_enabled'; return $this->settingsMetadataGateway->set(SettingKeys::SYSTEM_AUDIT_ENABLED_KEY, $enabled ? '1' : '0', $desc); } public function getSystemAuditRetentionDays(): int { $value = $this->settingsMetadataGateway->getInt(SettingKeys::SYSTEM_AUDIT_RETENTION_DAYS_KEY); if ($value === null) { return self::SYSTEM_AUDIT_RETENTION_DAYS_FALLBACK; } if ($value < self::SYSTEM_AUDIT_RETENTION_DAYS_MIN || $value > self::SYSTEM_AUDIT_RETENTION_DAYS_MAX) { return self::SYSTEM_AUDIT_RETENTION_DAYS_FALLBACK; } return $value; } public function setSystemAuditRetentionDays(?int $days, ?string $description = null): bool { $value = $days ?? self::SYSTEM_AUDIT_RETENTION_DAYS_FALLBACK; if ($value < self::SYSTEM_AUDIT_RETENTION_DAYS_MIN || $value > self::SYSTEM_AUDIT_RETENTION_DAYS_MAX) { return false; } $desc = $description ?? 'setting.system_audit_retention_days'; return $this->settingsMetadataGateway->set(SettingKeys::SYSTEM_AUDIT_RETENTION_DAYS_KEY, (string) $value, $desc); } }