Files
Atomcms-edit/app/Enums/AlertType.php
T
2026-05-09 17:32:17 +02:00

75 lines
3.0 KiB
PHP
Executable File

<?php
declare(strict_types=1);
namespace App\Enums;
enum AlertType: string
{
case EMULATOR_OFFLINE = 'emulator_offline';
case EMULATOR_ONLINE = 'emulator_online';
case EMULATOR_ERROR = 'emulator_error';
case DDOS_DETECTED = 'ddos_detected';
case DDOS_BLOCKED = 'ddos_blocked';
case HIGH_ERROR_RATE = 'high_error_rate';
case CRITICAL_ERROR = 'critical_error';
case QUEUE_FAILED = 'queue_failed';
case DATABASE_ERROR = 'database_error';
case SSL_EXPIRED = 'ssl_expired';
case DISK_SPACE_LOW = 'disk_space_low';
case MEMORY_WARNING = 'memory_warning';
case EMULATOR_UPDATE = 'emulator_update';
case SQL_UPDATE = 'sql_update';
public function getLabel(): string
{
return match ($this) {
self::EMULATOR_OFFLINE => 'Emulator Offline',
self::EMULATOR_ONLINE => 'Emulator Online',
self::EMULATOR_ERROR => 'Emulator Error',
self::DDOS_DETECTED => 'DDoS Gedetecteerd',
self::DDOS_BLOCKED => 'DDoS Geblokkeerd',
self::HIGH_ERROR_RATE => 'Hoge Error Rate',
self::CRITICAL_ERROR => 'Kritieke Error',
self::QUEUE_FAILED => 'Queue Failed',
self::DATABASE_ERROR => 'Database Error',
self::SSL_EXPIRED => 'SSL Verlopen',
self::DISK_SPACE_LOW => 'Weinig Schijfruimte',
self::MEMORY_WARNING => 'Geheugen Waarschuwing',
self::EMULATOR_UPDATE => 'Emulator Update',
self::SQL_UPDATE => 'SQL Update',
};
}
public function getSeverity(): AlertSeverity
{
return match ($this) {
self::EMULATOR_OFFLINE, self::DDOS_DETECTED, self::CRITICAL_ERROR => AlertSeverity::CRITICAL,
self::EMULATOR_ERROR, self::HIGH_ERROR_RATE, self::QUEUE_FAILED, self::DATABASE_ERROR, self::SSL_EXPIRED => AlertSeverity::ERROR,
self::DDOS_BLOCKED, self::DISK_SPACE_LOW, self::MEMORY_WARNING => AlertSeverity::WARNING,
self::EMULATOR_UPDATE, self::SQL_UPDATE => AlertSeverity::INFO,
self::EMULATOR_ONLINE => AlertSeverity::INFO,
};
}
public function getIcon(): string
{
return match ($this) {
self::EMULATOR_OFFLINE => 'heroicon-o-server',
self::EMULATOR_ONLINE => 'heroicon-o-server',
self::EMULATOR_ERROR => 'heroicon-o-exclamation-triangle',
self::DDOS_DETECTED => 'heroicon-o-shield-exclamation',
self::DDOS_BLOCKED => 'heroicon-o-shield-check',
self::HIGH_ERROR_RATE => 'heroicon-o-arrow-trending-up',
self::CRITICAL_ERROR => 'heroicon-o-x-circle',
self::QUEUE_FAILED => 'heroicon-o-queue-list',
self::DATABASE_ERROR => 'heroicon-o-database',
self::SSL_EXPIRED => 'heroicon-o-lock-closed',
self::DISK_SPACE_LOW => 'heroicon-o-hard-drive',
self::MEMORY_WARNING => 'heroicon-o-cpu-chip',
self::EMULATOR_UPDATE => 'heroicon-o-arrow-down-tray',
self::SQL_UPDATE => 'heroicon-o-document-arrow-down',
};
}
}