<?php

namespace App\Services;

class PremiumFeatures
{
    // Tüm mevcut premium özellikler — key → metadata
    public const ALL = [
        // ── İzleme ────────────────────────────────────────────────────────────
        'watchlist_export' => [
            'name'        => 'İzleme Listesi Dışa Aktarımı',
            'description' => 'Tüm izleme listeni CSV veya JSON olarak indir',
            'category'    => 'İzleme',
            'icon'        => 'bi-download',
        ],
        'anime_notes' => [
            'name'        => 'Kişisel Anime Notları',
            'description' => 'Her bölüm için sadece sana görünen gizli notlar bırak',
            'category'    => 'İzleme',
            'icon'        => 'bi-journal-text',
        ],
        'stream_history' => [
            'name'        => 'Sınırsız İzleme Geçmişi',
            'description' => 'Tüm geçmiş saklanır; standart üyede 30 kayıt limiti',
            'category'    => 'İzleme',
            'icon'        => 'bi-clock-history',
        ],

        // ── Sosyal / Yorum ────────────────────────────────────────────────────
        'comment_bg' => [
            'name'        => 'Yorum Arkaplanı Efekti',
            'description' => 'Yorumlarına özel animasyonlu arkaplan ekle',
            'category'    => 'Sosyal',
            'icon'        => 'bi-fire',
        ],
        'extended_comments' => [
            'name'        => 'Uzun Yorum (1000 karakter)',
            'description' => 'Ücretsiz kullanıcıların 2 katı yorum uzunluğu',
            'category'    => 'Sosyal',
            'icon'        => 'bi-chat-text-fill',
        ],
        'comment_gif' => [
            'name'        => 'Yoruma GIF Ekle',
            'description' => 'Yorumlarına Tenor/GIPHY GIFleri ekleyebilirsin',
            'category'    => 'Sosyal',
            'icon'        => 'bi-filetype-gif',
        ],
        'comment_glow' => [
            'name'        => 'Yorum Aura / Parıltı',
            'description' => 'Yorumlarının çevresinde renkli parlayan enerji halkası',
            'category'    => 'Sosyal',
            'icon'        => 'bi-brightness-high-fill',
        ],
        'comment_signature' => [
            'name'        => 'Yorum İmzası',
            'description' => 'Her yorumun altında görünen kişisel imza satırı',
            'category'    => 'Sosyal',
            'icon'        => 'bi-pen-fill',
        ],

        // ── Profil / Kozmetik ─────────────────────────────────────────────────
        'gif_avatar' => [
            'name'        => 'GIF Profil Fotoğrafı',
            'description' => 'Hareketli GIF\'i profil resmi olarak ayarla',
            'category'    => 'Profil',
            'icon'        => 'bi-image-fill',
        ],
        'username_color' => [
            'name'        => 'Renkli Kullanıcı Adı',
            'description' => 'Yorumlarda kullanıcı adın özel renkte görünsün',
            'category'    => 'Profil',
            'icon'        => 'bi-palette-fill',
        ],
        'username_effect' => [
            'name'        => 'Kullanıcı Adı Animasyonu',
            'description' => 'Shimmer, dalga, glitch gibi özel animasyon efektleri',
            'category'    => 'Profil',
            'icon'        => 'bi-lightning-charge-fill',
        ],
        'profile_frame' => [
            'name'        => 'Profil Çerçevesi',
            'description' => 'Avatarının çevresinde animasyonlu çerçeve',
            'category'    => 'Profil',
            'icon'        => 'bi-circle-fill',
        ],
        'profile_badge' => [
            'name'        => 'Özel Rozet/Unvan',
            'description' => 'Kullanıcı adının yanında özel rozet veya unvan',
            'category'    => 'Profil',
            'icon'        => 'bi-award-fill',
        ],
        'profile_bg' => [
            'name'        => 'Animasyonlu Profil Arka Planı',
            'description' => 'Profil sayfanda canlı animasyonlu arka plan',
            'category'    => 'Profil',
            'icon'        => 'bi-stars',
        ],
        'animated_banner' => [
            'name'        => 'Animasyonlu Profil Bannerı',
            'description' => 'Profil bannerın parçacık ve dalga efektiyle canlanır',
            'category'    => 'Profil',
            'icon'        => 'bi-image-alt',
        ],
        'entry_effect' => [
            'name'        => 'Sayfa Giriş Efekti',
            'description' => 'Sayfalara girerken özel giriş animasyonu',
            'category'    => 'Profil',
            'icon'        => 'bi-play-circle-fill',
        ],
        'watch_rank' => [
            'name'        => 'İzleme Rank Rozeti',
            'description' => 'İzleme saatine göre Acemi→Efsane arası özel rank',
            'category'    => 'Profil',
            'icon'        => 'bi-trophy-fill',
        ],

        // ── Hesap ─────────────────────────────────────────────────────────────
        'custom_profile_url' => [
            'name'        => 'Özel Profil URL\'i',
            'description' => 'animexe.com/u/senin-adin gibi kişisel URL',
            'category'    => 'Hesap',
            'icon'        => 'bi-link-45deg',
        ],
        'profile_music' => [
            'name'        => 'Profil Müziği',
            'description' => 'Profil sayfanda bir anime OST çal',
            'category'    => 'Hesap',
            'icon'        => 'bi-music-note-beamed',
        ],
    ];

    // Kategori sıralaması
    public const CATEGORIES = ['İzleme', 'Sosyal', 'Profil', 'Hesap'];

    // Yorum aura/parıltı efektleri
    public const COMMENT_GLOWS = [
        'cyan'   => ['label' => 'Siyan',  'color' => '#00f5ff'],
        'pink'   => ['label' => 'Pembe',  'color' => '#ff2d7d'],
        'gold'   => ['label' => 'Altın',  'color' => '#ffd700'],
        'green'  => ['label' => 'Yeşil',  'color' => '#00f564'],
        'purple' => ['label' => 'Mor',    'color' => '#b84dff'],
        'fire'   => ['label' => 'Alev',   'color' => '#ff6b35'],
    ];

    // Kullanıcı adı animasyon efektleri
    public const USERNAME_EFFECTS = [
        'shimmer' => ['label' => 'Işıltı'],
        'wave'    => ['label' => 'Dalga'],
        'pulse'   => ['label' => 'Nabız'],
        'glitch'  => ['label' => 'Glitch'],
        'bounce'  => ['label' => 'Zıplama'],
    ];

    // Sayfa giriş efektleri
    public const ENTRY_EFFECTS = [
        'fade'   => ['label' => 'Solma'],
        'slide'  => ['label' => 'Kayma'],
        'zoom'   => ['label' => 'Yakınlaştırma'],
        'glitch' => ['label' => 'Glitch'],
        'wave'   => ['label' => 'Dalga'],
    ];

    // Profil arka plan stilleri
    public const PROFILE_BACKGROUNDS = [
        'fire'   => ['label' => 'Alev',      'preview' => '#ff6b35,#ff2d7d'],
        'galaxy' => ['label' => 'Galaksi',   'preview' => '#0d0520,#050510'],
        'aurora' => ['label' => 'Aurora',    'preview' => '#040e0e,#071a1a'],
        'ice'    => ['label' => 'Buz',       'preview' => '#040d11,#071420'],
        'sakura' => ['label' => 'Sakura',    'preview' => '#ff9ec4,#ffd6e7'],
        'neon'   => ['label' => 'Neon',      'preview' => '#00f5ff,#b84dff'],
        'stars'  => ['label' => 'Yıldızlar', 'preview' => '#0a0a2e,#7c3aed'],
    ];

    // Yorum arkaplan stilleri
    public const COMMENT_BACKGROUNDS = [
        'fire'   => ['label' => 'Alev',       'preview' => '#ff6b35,#ff2d7d'],
        'aurora' => ['label' => 'Aurora',     'preview' => '#00f5b4,#00f5ff'],
        'stars'  => ['label' => 'Yıldızlar',  'preview' => '#0a0a2e,#7c3aed'],
        'sakura' => ['label' => 'Sakura',     'preview' => '#ff9ec4,#ffd6e7'],
        'neon'   => ['label' => 'Neon',       'preview' => '#00f5ff,#b84dff'],
        'galaxy' => ['label' => 'Galaksi',    'preview' => '#0d0d2e,#4a1d96'],
        'ice'    => ['label' => 'Buz',        'preview' => '#a8edff,#e0f7ff'],
    ];

    // Profil çerçeve stilleri
    public const PROFILE_FRAMES = [
        'neon'    => ['label' => 'Neon',        'color' => '#00f5ff'],
        'fire'    => ['label' => 'Alev',        'color' => '#ff6b35'],
        'sakura'  => ['label' => 'Sakura',      'color' => '#ff9ec4'],
        'galaxy'  => ['label' => 'Galaksi',     'color' => '#b84dff'],
        'gold'    => ['label' => 'Altın',       'color' => '#ffd700'],
        'ice'     => ['label' => 'Buz',         'color' => '#a8edff'],
        'blood'   => ['label' => 'Kan',         'color' => '#dc143c'],
        'mint'    => ['label' => 'Mint',        'color' => '#00ff7f'],
        'rainbow' => ['label' => 'Gökkuşağı',   'color' => '#ff0000'],
        'ocean'   => ['label' => 'Okyanus',     'color' => '#006fbf'],
        'poison'  => ['label' => 'Zehir',       'color' => '#9400d3'],
    ];

    // Kullanıcı adı renk presetleri
    public const USERNAME_COLORS = [
        'fire'    => ['label' => 'Alev',        'css' => 'linear-gradient(90deg,#ff6b35,#ff2d7d)'],
        'aurora'  => ['label' => 'Aurora',      'css' => 'linear-gradient(90deg,#00f5b4,#00f5ff)'],
        'sakura'  => ['label' => 'Sakura',      'css' => 'linear-gradient(90deg,#ff9ec4,#ff2d7d)'],
        'neon'    => ['label' => 'Neon',        'css' => 'linear-gradient(90deg,#00f5ff,#b84dff)'],
        'galaxy'  => ['label' => 'Galaksi',     'css' => 'linear-gradient(90deg,#7c3aed,#b84dff)'],
        'gold'    => ['label' => 'Altın',       'css' => 'linear-gradient(90deg,#ffd700,#ff8c00)'],
        'ice'     => ['label' => 'Buz',         'css' => 'linear-gradient(90deg,#a8edff,#60cfff)'],
        'blood'   => ['label' => 'Kan',         'css' => 'linear-gradient(90deg,#8b0000,#dc143c)'],
        'sunset'  => ['label' => 'Gün Batımı',  'css' => 'linear-gradient(90deg,#ff6b00,#ff0080)'],
        'ocean'   => ['label' => 'Okyanus',     'css' => 'linear-gradient(90deg,#006fbf,#00d2ff)'],
        'poison'  => ['label' => 'Zehir',       'css' => 'linear-gradient(90deg,#6b0ac9,#c300ff)'],
        'silver'  => ['label' => 'Gümüş',       'css' => 'linear-gradient(90deg,#9ca3af,#e5e7eb)'],
        'rainbow' => ['label' => 'Gökkuşağı',   'css' => 'linear-gradient(90deg,#ff0000,#ff8c00,#ffd700,#00c800,#0088ff,#8b00ff)'],
    ];

    /** Feature key'e göre metadata döner, yoksa null */
    public static function get(string $key): ?array
    {
        return self::ALL[$key] ?? null;
    }

    /** Kategoriye göre gruplanmış feature listesi */
    public static function grouped(): array
    {
        $groups = [];
        foreach (self::CATEGORIES as $cat) {
            $groups[$cat] = [];
        }
        foreach (self::ALL as $key => $meta) {
            $groups[$meta['category']][$key] = $meta;
        }
        return array_filter($groups);
    }
}
