<?php

namespace Database\Seeders;

use App\Models\Club;
use Illuminate\Database\Seeder;

/**
 * Extend club list dengan semua klub major dari liga-liga utama eFootball 2025/2026.
 * Menggunakan firstOrCreate — aman dijalankan berulang kali.
 */
class ClubExtendedSeeder extends Seeder
{
    public function run(): void
    {
        $clubs = [
            // ══════════════════════════════════════════════════════
            // LALIGA (Spain) — 20 klub
            // ══════════════════════════════════════════════════════
            ['name'=>'Real Sociedad',         'short_name'=>'RSO', 'nationality'=>'Spain', 'overall'=>81],
            ['name'=>'Athletic Bilbao',        'short_name'=>'ATH', 'nationality'=>'Spain', 'overall'=>81],
            ['name'=>'Osasuna',               'short_name'=>'OSA', 'nationality'=>'Spain', 'overall'=>75],
            ['name'=>'Rayo Vallecano',        'short_name'=>'RAY', 'nationality'=>'Spain', 'overall'=>74],
            ['name'=>'Getafe',                'short_name'=>'GET', 'nationality'=>'Spain', 'overall'=>73],
            ['name'=>'Celta Vigo',            'short_name'=>'CEL', 'nationality'=>'Spain', 'overall'=>75],
            ['name'=>'Mallorca',              'short_name'=>'MAL', 'nationality'=>'Spain', 'overall'=>73],
            ['name'=>'Girona',                'short_name'=>'GIR', 'nationality'=>'Spain', 'overall'=>77],
            ['name'=>'Las Palmas',            'short_name'=>'LPA', 'nationality'=>'Spain', 'overall'=>71],
            ['name'=>'Alaves',                'short_name'=>'ALA', 'nationality'=>'Spain', 'overall'=>70],
            ['name'=>'Espanyol',              'short_name'=>'ESP', 'nationality'=>'Spain', 'overall'=>72],
            ['name'=>'Leganes',               'short_name'=>'LEG', 'nationality'=>'Spain', 'overall'=>70],
            ['name'=>'Valladolid',            'short_name'=>'VLL', 'nationality'=>'Spain', 'overall'=>69],

            // ══════════════════════════════════════════════════════
            // PREMIER LEAGUE (England) — 20 klub
            // ══════════════════════════════════════════════════════
            ['name'=>'Everton',               'short_name'=>'EVE', 'nationality'=>'England', 'overall'=>75],
            ['name'=>'Leicester City',        'short_name'=>'LEI', 'nationality'=>'England', 'overall'=>76],
            ['name'=>'Crystal Palace',        'short_name'=>'CRY', 'nationality'=>'England', 'overall'=>76],
            ['name'=>'Brentford',             'short_name'=>'BRE', 'nationality'=>'England', 'overall'=>77],
            ['name'=>'Fulham',                'short_name'=>'FUL', 'nationality'=>'England', 'overall'=>77],
            ['name'=>'Wolves',                'short_name'=>'WOL', 'nationality'=>'England', 'overall'=>75],
            ['name'=>'Nottingham Forest',     'short_name'=>'NFO', 'nationality'=>'England', 'overall'=>77],
            ['name'=>'Ipswich Town',          'short_name'=>'IPS', 'nationality'=>'England', 'overall'=>72],
            ['name'=>'Bournemouth',           'short_name'=>'BOU', 'nationality'=>'England', 'overall'=>76],
            ['name'=>'Southampton',           'short_name'=>'SOU', 'nationality'=>'England', 'overall'=>70],

            // ══════════════════════════════════════════════════════
            // SERIE A (Italy) — 20 klub
            // ══════════════════════════════════════════════════════
            ['name'=>'Torino',                'short_name'=>'TOR', 'nationality'=>'Italy', 'overall'=>75],
            ['name'=>'Bologna',               'short_name'=>'BOL', 'nationality'=>'Italy', 'overall'=>78],
            ['name'=>'Udinese',               'short_name'=>'UDI', 'nationality'=>'Italy', 'overall'=>73],
            ['name'=>'Empoli',                'short_name'=>'EMP', 'nationality'=>'Italy', 'overall'=>72],
            ['name'=>'Sassuolo',              'short_name'=>'SAS', 'nationality'=>'Italy', 'overall'=>74],
            ['name'=>'Cagliari',              'short_name'=>'CAG', 'nationality'=>'Italy', 'overall'=>71],
            ['name'=>'Parma',                 'short_name'=>'PAR', 'nationality'=>'Italy', 'overall'=>72],
            ['name'=>'Lecce',                 'short_name'=>'LEC', 'nationality'=>'Italy', 'overall'=>71],
            ['name'=>'Verona',                'short_name'=>'VER', 'nationality'=>'Italy', 'overall'=>72],
            ['name'=>'Venezia',               'short_name'=>'VEN', 'nationality'=>'Italy', 'overall'=>70],
            ['name'=>'Monza',                 'short_name'=>'MON', 'nationality'=>'Italy', 'overall'=>73],
            ['name'=>'Genoa',                 'short_name'=>'GEN', 'nationality'=>'Italy', 'overall'=>72],

            // ══════════════════════════════════════════════════════
            // BUNDESLIGA (Germany) — 18 klub
            // ══════════════════════════════════════════════════════
            ['name'=>'Eintracht Frankfurt',   'short_name'=>'SGE', 'nationality'=>'Germany', 'overall'=>81],
            ['name'=>'VfB Stuttgart',         'short_name'=>'VFB', 'nationality'=>'Germany', 'overall'=>81],
            ['name'=>'SC Freiburg',           'short_name'=>'SCF', 'nationality'=>'Germany', 'overall'=>76],
            ['name'=>'TSG Hoffenheim',        'short_name'=>'TSG', 'nationality'=>'Germany', 'overall'=>76],
            ['name'=>'Werder Bremen',         'short_name'=>'SVW', 'nationality'=>'Germany', 'overall'=>76],
            ['name'=>'Mainz 05',              'short_name'=>'M05', 'nationality'=>'Germany', 'overall'=>74],
            ['name'=>'FC Augsburg',           'short_name'=>'FCA', 'nationality'=>'Germany', 'overall'=>73],
            ['name'=>'VfL Wolfsburg',         'short_name'=>'WOB', 'nationality'=>'Germany', 'overall'=>76],
            ['name'=>'Borussia Mönchengladbach','short_name'=>'BMG','nationality'=>'Germany','overall'=>76],
            ['name'=>'Bochum',                'short_name'=>'BOC', 'nationality'=>'Germany', 'overall'=>70],
            ['name'=>'FC Union Berlin',       'short_name'=>'FCU', 'nationality'=>'Germany', 'overall'=>73],
            ['name'=>'FC Köln',               'short_name'=>'KOE', 'nationality'=>'Germany', 'overall'=>72],
            ['name'=>'Hertha BSC',            'short_name'=>'BSC', 'nationality'=>'Germany', 'overall'=>72],

            // ══════════════════════════════════════════════════════
            // LIGUE 1 (France) — 18 klub
            // ══════════════════════════════════════════════════════
            ['name'=>'Lille',                 'short_name'=>'LIL', 'nationality'=>'France', 'overall'=>79],
            ['name'=>'Nice',                  'short_name'=>'NIC', 'nationality'=>'France', 'overall'=>78],
            ['name'=>'Lens',                  'short_name'=>'RCL', 'nationality'=>'France', 'overall'=>77],
            ['name'=>'Rennes',                'short_name'=>'REN', 'nationality'=>'France', 'overall'=>77],
            ['name'=>'Strasbourg',            'short_name'=>'RCS', 'nationality'=>'France', 'overall'=>74],
            ['name'=>'Nantes',                'short_name'=>'FCN', 'nationality'=>'France', 'overall'=>73],
            ['name'=>'Toulouse',              'short_name'=>'TFC', 'nationality'=>'France', 'overall'=>74],
            ['name'=>'Montpellier',           'short_name'=>'MHSC','nationality'=>'France', 'overall'=>72],
            ['name'=>'Reims',                 'short_name'=>'SDR', 'nationality'=>'France', 'overall'=>73],
            ['name'=>'Brest',                 'short_name'=>'SB29','nationality'=>'France', 'overall'=>74],

            // ══════════════════════════════════════════════════════
            // EREDIVISIE (Netherlands)
            // ══════════════════════════════════════════════════════
            ['name'=>'PSV Eindhoven',         'short_name'=>'PSV', 'nationality'=>'Netherlands', 'overall'=>83],
            ['name'=>'Feyenoord',             'short_name'=>'FEY', 'nationality'=>'Netherlands', 'overall'=>82],
            ['name'=>'AZ Alkmaar',            'short_name'=>'AZ',  'nationality'=>'Netherlands', 'overall'=>77],
            ['name'=>'FC Utrecht',            'short_name'=>'FCU', 'nationality'=>'Netherlands', 'overall'=>73],
            ['name'=>'FC Twente',             'short_name'=>'FCT', 'nationality'=>'Netherlands', 'overall'=>76],

            // ══════════════════════════════════════════════════════
            // SCOTTISH PREMIERSHIP
            // ══════════════════════════════════════════════════════
            ['name'=>'Rangers',               'short_name'=>'RFC', 'nationality'=>'Scotland', 'overall'=>77],

            // ══════════════════════════════════════════════════════
            // PRIMEIRA LIGA (Portugal)
            // ══════════════════════════════════════════════════════
            ['name'=>'SC Braga',              'short_name'=>'SCB', 'nationality'=>'Portugal', 'overall'=>79],
            ['name'=>'Vitoria Guimaraes',     'short_name'=>'VSC', 'nationality'=>'Portugal', 'overall'=>73],
            ['name'=>'Moreirense',            'short_name'=>'MOR', 'nationality'=>'Portugal', 'overall'=>69],

            // ══════════════════════════════════════════════════════
            // SÜPER LIG (Turkey)
            // ══════════════════════════════════════════════════════
            ['name'=>'Besiktas',              'short_name'=>'BJK', 'nationality'=>'Turkey', 'overall'=>76],
            ['name'=>'Trabzonspor',           'short_name'=>'TBS', 'nationality'=>'Turkey', 'overall'=>73],
            ['name'=>'Basaksehir',            'short_name'=>'IBB', 'nationality'=>'Turkey', 'overall'=>74],

            // ══════════════════════════════════════════════════════
            // BELGIAN PRO LEAGUE
            // ══════════════════════════════════════════════════════
            ['name'=>'Club Brugge',           'short_name'=>'CLU', 'nationality'=>'Belgium', 'overall'=>79],
            ['name'=>'Anderlecht',            'short_name'=>'AND', 'nationality'=>'Belgium', 'overall'=>76],
            ['name'=>'Gent',                  'short_name'=>'GNT', 'nationality'=>'Belgium', 'overall'=>74],

            // ══════════════════════════════════════════════════════
            // AUSTRIAN BUNDESLIGA
            // ══════════════════════════════════════════════════════
            ['name'=>'Red Bull Salzburg',     'short_name'=>'RBS', 'nationality'=>'Austria', 'overall'=>79],
            ['name'=>'Sturm Graz',            'short_name'=>'STU', 'nationality'=>'Austria', 'overall'=>74],

            // ══════════════════════════════════════════════════════
            // RUSSIAN PREMIER LEAGUE
            // ══════════════════════════════════════════════════════
            ['name'=>'Zenit St Petersburg',   'short_name'=>'ZEN', 'nationality'=>'Russia', 'overall'=>78],
            ['name'=>'CSKA Moscow',           'short_name'=>'CSK', 'nationality'=>'Russia', 'overall'=>76],
            ['name'=>'Spartak Moscow',        'short_name'=>'SPM', 'nationality'=>'Russia', 'overall'=>75],
            ['name'=>'Lokomotiv Moscow',      'short_name'=>'LOK', 'nationality'=>'Russia', 'overall'=>74],

            // ══════════════════════════════════════════════════════
            // GREEK SUPER LEAGUE
            // ══════════════════════════════════════════════════════
            ['name'=>'Olympiakos',            'short_name'=>'OLY', 'nationality'=>'Greece', 'overall'=>76],
            ['name'=>'PAOK',                  'short_name'=>'PAO', 'nationality'=>'Greece', 'overall'=>74],
            ['name'=>'AEK Athens',            'short_name'=>'AEK', 'nationality'=>'Greece', 'overall'=>74],

            // ══════════════════════════════════════════════════════
            // MLS (USA)
            // ══════════════════════════════════════════════════════
            ['name'=>'LA Galaxy',             'short_name'=>'LAG', 'nationality'=>'USA', 'overall'=>74],
            ['name'=>'Inter Miami CF',        'short_name'=>'MIA', 'nationality'=>'USA', 'overall'=>76],
            ['name'=>'New York City FC',      'short_name'=>'NYC', 'nationality'=>'USA', 'overall'=>73],
            ['name'=>'Seattle Sounders',      'short_name'=>'SEA', 'nationality'=>'USA', 'overall'=>73],
            ['name'=>'Atlanta United',        'short_name'=>'ATL', 'nationality'=>'USA', 'overall'=>73],
            ['name'=>'Portland Timbers',      'short_name'=>'POR', 'nationality'=>'USA', 'overall'=>72],
            ['name'=>'Columbus Crew',         'short_name'=>'COL', 'nationality'=>'USA', 'overall'=>72],
            ['name'=>'NYCFC',                 'short_name'=>'NYC', 'nationality'=>'USA', 'overall'=>72],

            // ══════════════════════════════════════════════════════
            // LIGA MX (Mexico)
            // ══════════════════════════════════════════════════════
            ['name'=>'Club America',          'short_name'=>'CAM', 'nationality'=>'Mexico', 'overall'=>76],
            ['name'=>'Guadalajara (Chivas)',   'short_name'=>'GDL', 'nationality'=>'Mexico', 'overall'=>74],
            ['name'=>'Cruz Azul',             'short_name'=>'CAZ', 'nationality'=>'Mexico', 'overall'=>74],
            ['name'=>'UNAM Pumas',            'short_name'=>'PUM', 'nationality'=>'Mexico', 'overall'=>72],
            ['name'=>'Tigres UANL',           'short_name'=>'TIG', 'nationality'=>'Mexico', 'overall'=>75],
            ['name'=>'Monterrey',             'short_name'=>'MTY', 'nationality'=>'Mexico', 'overall'=>75],
            ['name'=>'Toluca',                'short_name'=>'TOL', 'nationality'=>'Mexico', 'overall'=>72],
            ['name'=>'Atlas',                 'short_name'=>'ATL', 'nationality'=>'Mexico', 'overall'=>71],

            // ══════════════════════════════════════════════════════
            // BRASILEIRAO (Brazil)
            // ══════════════════════════════════════════════════════
            ['name'=>'Corinthians',           'short_name'=>'COR', 'nationality'=>'Brazil', 'overall'=>76],
            ['name'=>'Sao Paulo',             'short_name'=>'SAO', 'nationality'=>'Brazil', 'overall'=>75],
            ['name'=>'Atletico Mineiro',      'short_name'=>'CAM', 'nationality'=>'Brazil', 'overall'=>77],
            ['name'=>'Internacional',         'short_name'=>'INT', 'nationality'=>'Brazil', 'overall'=>74],
            ['name'=>'Gremio',                'short_name'=>'GRE', 'nationality'=>'Brazil', 'overall'=>74],
            ['name'=>'Santos',                'short_name'=>'SAN', 'nationality'=>'Brazil', 'overall'=>72],
            ['name'=>'Vasco da Gama',         'short_name'=>'VAS', 'nationality'=>'Brazil', 'overall'=>71],
            ['name'=>'Palmeiras',             'short_name'=>'PAL', 'nationality'=>'Brazil', 'overall'=>80],
            ['name'=>'Botafogo',              'short_name'=>'BOT', 'nationality'=>'Brazil', 'overall'=>73],
            ['name'=>'Fluminense',            'short_name'=>'FLU', 'nationality'=>'Brazil', 'overall'=>74],
            ['name'=>'Cruzeiro',              'short_name'=>'CRU', 'nationality'=>'Brazil', 'overall'=>72],

            // ══════════════════════════════════════════════════════
            // ARGENTINA (Liga Profesional)
            // ══════════════════════════════════════════════════════
            ['name'=>'San Lorenzo',           'short_name'=>'SLO', 'nationality'=>'Argentina', 'overall'=>70],
            ['name'=>'Racing Club',           'short_name'=>'RAC', 'nationality'=>'Argentina', 'overall'=>73],
            ['name'=>'Independiente',         'short_name'=>'IND', 'nationality'=>'Argentina', 'overall'=>70],
            ['name'=>'Estudiantes',           'short_name'=>'EST', 'nationality'=>'Argentina', 'overall'=>71],
            ['name'=>'Huracan',               'short_name'=>'HUR', 'nationality'=>'Argentina', 'overall'=>68],

            // ══════════════════════════════════════════════════════
            // SAUDI PRO LEAGUE
            // ══════════════════════════════════════════════════════
            ['name'=>'Al-Ittihad',            'short_name'=>'ITH', 'nationality'=>'Saudi Arabia', 'overall'=>79],
            ['name'=>'Al-Ahli',               'short_name'=>'AHL', 'nationality'=>'Saudi Arabia', 'overall'=>77],
            ['name'=>'Al-Qadsiah',            'short_name'=>'QDS', 'nationality'=>'Saudi Arabia', 'overall'=>73],
            ['name'=>'Al-Shabab',             'short_name'=>'SHA', 'nationality'=>'Saudi Arabia', 'overall'=>72],
            ['name'=>'Al-Fateh',              'short_name'=>'FAT', 'nationality'=>'Saudi Arabia', 'overall'=>70],

            // ══════════════════════════════════════════════════════
            // J.LEAGUE (Japan)
            // ══════════════════════════════════════════════════════
            ['name'=>'Urawa Red Diamonds',    'short_name'=>'URW', 'nationality'=>'Japan', 'overall'=>73],
            ['name'=>'Gamba Osaka',           'short_name'=>'GAM', 'nationality'=>'Japan', 'overall'=>72],
            ['name'=>'Kashima Antlers',       'short_name'=>'KAS', 'nationality'=>'Japan', 'overall'=>73],
            ['name'=>'Vissel Kobe',           'short_name'=>'KOB', 'nationality'=>'Japan', 'overall'=>74],
            ['name'=>'Yokohama F. Marinos',   'short_name'=>'YFM', 'nationality'=>'Japan', 'overall'=>75],
            ['name'=>'FC Tokyo',              'short_name'=>'FCT', 'nationality'=>'Japan', 'overall'=>71],
            ['name'=>'Nagoya Grampus',        'short_name'=>'NAG', 'nationality'=>'Japan', 'overall'=>72],
            ['name'=>'Cerezo Osaka',          'short_name'=>'CER', 'nationality'=>'Japan', 'overall'=>71],
            ['name'=>'Sanfrecce Hiroshima',   'short_name'=>'HIR', 'nationality'=>'Japan', 'overall'=>73],

            // ══════════════════════════════════════════════════════
            // K-LEAGUE (South Korea)
            // ══════════════════════════════════════════════════════
            ['name'=>'Jeonbuk Hyundai Motors','short_name'=>'JBK', 'nationality'=>'South Korea', 'overall'=>74],
            ['name'=>'Ulsan HD',              'short_name'=>'ULS', 'nationality'=>'South Korea', 'overall'=>74],
            ['name'=>'Suwon Samsung Bluewings','short_name'=>'SWN','nationality'=>'South Korea', 'overall'=>72],
            ['name'=>'Seongnam FC',           'short_name'=>'SGM', 'nationality'=>'South Korea', 'overall'=>69],

            // ══════════════════════════════════════════════════════
            // CHINESE SUPER LEAGUE
            // ══════════════════════════════════════════════════════
            ['name'=>'Shanghai Port',         'short_name'=>'SHP', 'nationality'=>'China', 'overall'=>72],
            ['name'=>'Shandong Taishan',      'short_name'=>'SDT', 'nationality'=>'China', 'overall'=>72],
            ['name'=>'Wuhan Three Towns',     'short_name'=>'WUH', 'nationality'=>'China', 'overall'=>71],
            ['name'=>'Beijing Guoan',         'short_name'=>'BJG', 'nationality'=>'China', 'overall'=>71],

            // ══════════════════════════════════════════════════════
            // AUTRES / AFRICA
            // ══════════════════════════════════════════════════════
            ['name'=>'Zamalek',               'short_name'=>'ZAM', 'nationality'=>'Egypt', 'overall'=>70],
            ['name'=>'Al Ahly',               'short_name'=>'AHY', 'nationality'=>'Egypt', 'overall'=>73],
            ['name'=>'Esperance Tunis',       'short_name'=>'EST', 'nationality'=>'Tunisia', 'overall'=>70],
            ['name'=>'TP Mazembe',            'short_name'=>'TPM', 'nationality'=>'Congo DR', 'overall'=>68],
            ['name'=>'Wydad Casablanca',      'short_name'=>'WAC', 'nationality'=>'Morocco', 'overall'=>70],
            ['name'=>'Raja Casablanca',       'short_name'=>'RAJ', 'nationality'=>'Morocco', 'overall'=>69],
        ];

        $added = 0;
        foreach ($clubs as $club) {
            $result = Club::firstOrCreate(
                ['name' => $club['name'], 'type' => 'club'],
                array_merge($club, ['type' => 'club', 'is_active' => true])
            );
            if ($result->wasRecentlyCreated) $added++;
        }

        $total = Club::where('type', 'club')->count();
        $this->command->info("✅ {$added} klub baru ditambahkan. Total klub: {$total}");
    }
}
