<?php

namespace App\Helpers;

/**
 * IconHelper
 * 아이콘 및 소셜 미디어 아이콘의 HTML을 생성하는 헬퍼 클래스입니다.
 */
class IconHelper
{
    /**
     * 입력을 기반으로 아이콘 HTML을 반환합니다.
     * 
     * @param string $key ICONS 상수의 키
     * @param string $class 추가적인 CSS 클래스
     * @return string
     */
    public static function icon(string $key, string $class = ''): string
    {
        $icons = self::getIcons();
        if (!isset($icons[$key])) {
            $icons = self::getMessengerIcons();
        }

        if (!isset($icons[$key])) {
            return '';
        }

        $icon = $icons[$key];
        if ($class && str_contains($icon, 'class="')) {
            return str_replace('class="', 'class="' . $class . ' ', $icon);
        }

        return $icon;
    }

    /**
     * 메신저 아이콘 HTML을 반환합니다.
     * 
     * @param string $key MESSENGER_ICONS 상수의 키
     * @return string
     */
    public static function messengerIcon(string $key): string
    {
        $icons = self::getMessengerIcons();
        return $icons[$key] ?? '';
    }

    /**
     * 아이콘 데이터를 관리합니다. (Constants.php에서 분리된 데이터)
     */
    private static function getIcons(): array
    {
        return ICONS;
    }

    private static function getMessengerIcons(): array
    {
        return MESSENGER_ICONS;
    }
}
