<?php

declare(strict_types=1);

namespace App\Framework\Health;

enum HealthCheckCategory: string
{
    case DATABASE = 'database';
    case CACHE = 'cache';
    case STORAGE = 'storage';
    case NETWORK = 'network';
    case SYSTEM = 'system';
    case EXTERNAL = 'external';
    case SECURITY = 'security';
    case DISCOVERY = 'discovery';

    public function getIcon(): string
    {
        return match($this) {
            self::DATABASE => '🗄️',
            self::CACHE => '⚡',
            self::STORAGE => '💾',
            self::NETWORK => '🌐',
            self::SYSTEM => '🖥️',
            self::EXTERNAL => '🔗',
            self::SECURITY => '🔒',
            self::DISCOVERY => '🔍'
        };
    }

    public function getDisplayName(): string
    {
        return match($this) {
            self::DATABASE => 'Database',
            self::CACHE => 'Cache',
            self::STORAGE => 'Storage',
            self::NETWORK => 'Network',
            self::SYSTEM => 'System',
            self::EXTERNAL => 'External Services',
            self::SECURITY => 'Security',
            self::DISCOVERY => 'Discovery System'
        };
    }
}
