settingsMetadataGateway->getInt(SettingKeys::USER_INACTIVITY_DEACTIVATE_DAYS_KEY); if ($value !== null && $this->isValidInactivityDays($value)) { return $value; } return self::USER_INACTIVITY_DEACTIVATE_DAYS_FALLBACK; } public function setUserInactivityDeactivateDays(?int $days, ?string $description = null): bool { $value = $days ?? self::USER_INACTIVITY_DEACTIVATE_DAYS_FALLBACK; if (!$this->isValidInactivityDays($value)) { return false; } if ($value === 0) { $deleteUpdated = $this->settingsMetadataGateway->set( SettingKeys::USER_INACTIVITY_DELETE_DAYS_KEY, '0', 'setting.user_inactivity_delete_days' ); if (!$deleteUpdated) { return false; } } $desc = $description ?? 'setting.user_inactivity_deactivate_days'; return $this->settingsMetadataGateway->set(SettingKeys::USER_INACTIVITY_DEACTIVATE_DAYS_KEY, (string) $value, $desc); } public function getUserInactivityDeleteDays(): int { $deactivateDays = $this->getUserInactivityDeactivateDays(); if ($deactivateDays <= 0) { return 0; } $value = $this->settingsMetadataGateway->getInt(SettingKeys::USER_INACTIVITY_DELETE_DAYS_KEY); if ($value !== null && $this->isValidInactivityDays($value)) { return $value; } return self::USER_INACTIVITY_DELETE_DAYS_FALLBACK; } public function setUserInactivityDeleteDays(?int $days, ?string $description = null): bool { $value = $days ?? self::USER_INACTIVITY_DELETE_DAYS_FALLBACK; if (!$this->isValidInactivityDays($value)) { return false; } if ($value > 0 && $this->getUserInactivityDeactivateDays() <= 0) { return false; } $desc = $description ?? 'setting.user_inactivity_delete_days'; return $this->settingsMetadataGateway->set(SettingKeys::USER_INACTIVITY_DELETE_DAYS_KEY, (string) $value, $desc); } private function isValidInactivityDays(int $days): bool { return $days >= self::USER_INACTIVITY_DAYS_MIN && $days <= self::USER_INACTIVITY_DAYS_MAX; } }