<?php

namespace App\Controllers;

use App\core\View;

class NewsController
{
    public function show(string $slug): void
    {
        $noticia = $this->getNoticiaBySlug($slug);

        if (!$noticia) {
            http_response_code(404);
            require __DIR__ . '/../Views/errors/404.php';
            return;
        }

        $baseUrl = 'https://noticiasdehoyonline.com';

        // JSON-LD NewsArticle
        $articleSchema = [
            '@context' => 'https://schema.org',
            '@type' => 'NewsArticle',
            'headline' => $noticia['titulo'],
            'description' => $noticia['resumen'],
            'image' => [$noticia['imagen']],
            'datePublished' => $noticia['fechaISO'] . 'T12:00:00-05:00',
            'dateModified' => $noticia['fechaISO'] . 'T12:00:00-05:00',
            'author' => [
                '@type' => 'Person',
                'name' => $noticia['autor'],
            ],
            'publisher' => [
                '@type' => 'NewsMediaOrganization',
                'name' => 'Noticias de Hoy Online',
                'logo' => [
                    '@type' => 'ImageObject',
                    'url' => $baseUrl . '/img/logo.png',
                ],
            ],
            'mainEntityOfPage' => [
                '@type' => 'WebPage',
                '@id' => $baseUrl . '/noticia/' . $slug,
            ],
            'articleSection' => $noticia['categoria'],
            'inLanguage' => 'es-PE',
            'keywords' => $noticia['categoria'] . ', noticias, peru, Lima, ' . $noticia['titulo'],
        ];

        View::render('news/show', [
            'noticia' => $noticia,
            'articleSchema' => $articleSchema,

            // SEO basico
            'pageTitle' => $noticia['titulo'] . ' | Noticias de Hoy Online',
            'pageDescription' => $noticia['resumen'],
            'pageKeywords' => $noticia['categoria'] . ', noticias, peru, Lima, ' . $noticia['titulo'],
            'pageAuthor' => $noticia['autor'],
            'pageUrl' => $baseUrl . '/noticia/' . $slug,
            'pageImage' => $noticia['imagen'],

            // Article OG
            'ogType' => 'article',
            'articleDatePublished' => $noticia['fechaISO'] . 'T12:00:00-05:00',
            'articleSection' => $noticia['categoria'],

            // Breadcrumbs
            'breadcrumbs' => [
                ['@type' => 'ListItem', 'position' => 1, 'name' => 'Inicio', 'item' => $baseUrl . '/'],
                ['@type' => 'ListItem', 'position' => 2, 'name' => $noticia['categoria'], 'item' => $baseUrl . '/' . strtolower($noticia['categoria'])],
                ['@type' => 'ListItem', 'position' => 3, 'name' => $noticia['titulo'], 'item' => $baseUrl . '/noticia/' . $slug],
            ],
        ]);
    }

    private function getNoticiaBySlug(string $slug): ?array
    {
        $noticias = $this->getNoticias();
        foreach ($noticias as $noticia) {
            if ($noticia['slug'] === $slug) {
                return $noticia;
            }
        }
        return null;
    }

    private function getNoticias(): array
    {
        return [
            [
                'id' => 1,
                'titulo' => 'JNE declara fundada la apelacion de Lopez Aliaga y habilita su candidatura a regidor de Lima',
                'resumen' => 'El Jurado Nacional de Elecciones revirtio la decision del JEE de Lima Centro y confirmo que el lider de Renovacion Popular podra postular como primer regidor de la Municipalidad Metropolitana de Lima pese a su condicion de senador electo.',
                'categoria' => 'Politica',
                'imagen' => '/img/rafael-lopez-jne.webp',
                'imagenAlt' => 'Rafael Lopez Aliaga, lider de Renovacion Popular, durante declaracion publica',
                'autor' => 'Redaccion',
                'fecha' => '14 Jul 2026',
                'fechaISO' => '2026-07-14',
                'slug' => 'jne-fundada-apelacion-lopez-aliaga-regidor-lima',
                'contenido' => '<p class="text-lg text-gray-700 leading-relaxed mb-6">El Jurado Nacional de Elecciones (JNE) emitio una decision que marca un giro en el proceso electoral de Lima al declarar fundado el recurso de apelacion interpuesto por el partido Renovacion Popular. Con este fallo, Rafael Lopez Aliaga quedo habilitado para competir como candidato a primer regidor de la Municipalidad Metropolitana de Lima en las elecciones programadas para el 4 de octubre.</p>

<h2 class="text-xl font-bold text-gray-900 mb-3 mt-8">El conflicto juridico</h2>

<p class="text-gray-700 leading-relaxed mb-6">La controversia giraba en torno a un interrogante juridico fundamental: si la proclamacion de Lopez Aliaga como senador electo para el periodo 2026-2031 constituia un obstaculo legal para postular a un cargo municipal. El Jurado Electoral Especial (JEE) de Lima Centro habia resuelto que asi era, declarando improcedente la inscripcion de su candidatura argumentando que su condicion de parlamentario electo se mantenia vigente.</p>

<p class="text-gray-700 leading-relaxed mb-6">Sin embargo, la defensa de Renovacion Popular sostuvo que Lopez Aliaga habia manifestado publicamente su voluntad de no juramentar ni asumir el cargo de senador, lo que, segun su argumento, eliminaba el impedimento para participar en las elecciones municipales.</p>

<h2 class="text-xl font-bold text-gray-900 mb-3 mt-8">La decision del JNE</h2>

<p class="text-gray-700 leading-relaxed mb-6">El Pleno del JNE, tras evaluar las pruebas presentadas por la defensa legal del partido, revirtio la resolucion del JEE de Lima Centro. En su comunicado oficial, el tribunal electoral preciso que "la causa resuelta es la apelacion presentada por la organizacion politica Renovacion Popular en contra de la Resolucion N 04301-2026-JEE-LICN/JNE que declaro improcedente la inscripcion de la candidatura de Rafael Lopez Aliaga como teniente alcalde de Lima".</p>

<p class="text-gray-700 leading-relaxed mb-6">El JNE senalo ademas que "se mantiene vigente su condicion de senador electo para el periodo parlamentario 2026-2031", pero fallo que esto no representaba un impedimento legal para su candidatura municipal. Los magistrados del Pleno evaluaron integralmente las pruebas y publicaron el sentido de su fallo declarando fundada la apelacion.</p>

<h2 class="text-xl font-bold text-gray-900 mb-3 mt-8">Implicaciones politicas</h2>

<p class="text-gray-700 leading-relaxed mb-6">Esta decision tiene un impacto significativo en el escenario politico de Lima, ya que Lopez Aliaga, lider de Renovacion Popular y actual alcalde de la ciudad, podra ahora competir por un nuevo periodo en la municipalidad. La resolucion del JNE establece un precedente relevante sobre la interpretacion de las incompatibilidades electorales en el sistema politico peruano.</p>

<div class="bg-gray-100 border-l-4 border-primary-600 p-5 rounded-r-lg my-8">
<p class="text-sm text-gray-600 italic"><strong>Fuente:</strong> Comunicado oficial del Jurado Nacional de Elecciones del Peru. Informacion consultada el 14 de julio de 2026.</p>
</div>

<p class="text-gray-700 leading-relaxed mb-6">El proceso electoral de Lima se intensifica a medida que se acercan las elecciones del 4 de octubre, y esta resolucion del maximo tribunal electoral reconfigura las cartas en juego para las principales fuerzas politicas de la capital.</p>',
            ],
            [
                'id' => 2,
                'titulo' => 'España vs Francia EN VIVO: a que hora juegan y donde ver la semifinal del Mundial 2026',
                'resumen' => 'Los dos equipos favoritos del Mundial se miden por un puesto en la gran final. España busca superar sus problemas de gol, mientras Francia llega con Mbappe como principal amenaza ofensiva.',
                'categoria' => 'Deportes',
                'imagen' => '/img/españa-vs-francia.webp',
                'imagenAlt' => 'Selecciones de España y Francia enfrentandose en semifinal del Mundial 2026 en el Estadio Dallas',
                'autor' => 'Redaccion Deportiva',
                'fecha' => '14 Jul 2026',
                'fechaISO' => '2026-07-14',
                'slug' => 'espana-vs-francia-semifinal-mundial-2026-hora-canal',
                'contenido' => '<p class="text-lg text-gray-700 leading-relaxed mb-6">La semifinal mas esperada del Mundial 2026 se disputa este martes 14 de julio en el Estadio Dallas, donde España y Francia se enfrentan por un lugar en la gran final. Un duelo entre dos selecciones que llegan como favoritas, pero con realidades muy diferentes en su recorrido por el torneo.</p>

<h2 class="text-xl font-bold text-gray-900 mb-3 mt-8">La Eurocopa busca su revancha mundialista</h2>

<p class="text-gray-700 leading-relaxed mb-6">La seleccion española, campeona de la Eurocopa 2024, llega con la obligation de demostrar que su estilo de juego puede trascender en una Copa del Mundo. Bajo la direccion tecnica de Luis de la Fuente, el combinado iberico ha desplegado un futbol ofensivo y vistoso, pero con una debilidad que ha encendido las alarmas: la falta de contundencia frente al arco.</p>

<p class="text-gray-700 leading-relaxed mb-6">Los ultimos partidos de España en el Mundial han sido resueltos en los ultimos minutos de juego, lo que ha generado criticas sobre la capacidad del equipo para definir encuentros de forma temprana. A pesar de ello, la calidad individual de jugadores como Lamine Yamal, Dani Olmo y Mikel Oyarzabal sigue siendo un factor determinante para las aspiraciones del conjunto ibérico.</p>

<h2 class="text-xl font-bold text-gray-900 mb-3 mt-8">Francia, la maquina de Didier Deschamps</h2>

<p class="text-gray-700 leading-relaxed mb-6">Del otro lado, Francia llega en condiciones optimas. Los galos han mostrado un rendimiento solido a lo largo del torneo, con la excepcion de un partido que ganaron por la minima diferencia de 1-0. Su mayor baza ofensiva recae en Kylian Mbappe, quien ha marcado en cada uno de los encuentros disputados por Francia en esta edicion del Mundial.</p>

<p class="text-gray-700 leading-relaxed mb-6">El delantero del Real Madrid se presenta como el jugador mas peligroso del compromiso, y su capacidad para desequilibrar cualquier defensa lo convierte en la principal preocupacion del cuerpo tecnico español. A su alrededor, nombres como Ousmane Dembele, Michael Olise y Desire Doue complementan un ataque vertiginoso que puede castigar cualquier espacio.</p>

<h2 class="text-xl font-bold text-gray-900 mb-3 mt-8">A que hora juegan por America Latina</h2>

<p class="text-gray-700 leading-relaxed mb-4">El cotejo comienza a las <strong>2:00 p.m. hora peruana</strong> (19:00 UTC) en el Estadio Dallas. Los horarios en los principales paises de la region son los siguientes:</p>

<ul class="list-disc list-inside text-gray-700 leading-relaxed mb-6 space-y-1">
<li><strong>Peru, Colombia y Ecuador:</strong> 2:00 p.m.</li>
<li><strong>Mexico (CDMX):</strong> 1:00 p.m.</li>
<li><strong>Chile, Bolivia y Venezuela:</strong> 3:00 p.m.</li>
<li><strong>Argentina, Brasil, Uruguay y Paraguay:</strong> 4:00 p.m.</li>
<li><strong>Espana y Francia:</strong> 9:00 p.m.</li>
<li><strong>Estados Unidos (Washington):</strong> 3:00 p.m.</li>
</ul>

<h2 class="text-xl font-bold text-gray-900 mb-3 mt-8">Donde ver el partido EN VIVO</h2>

<p class="text-gray-700 leading-relaxed mb-6">En Peru, el compromiso sera transmitido en television abierta por <strong>America TV</strong>, mientras que en television por señal paga estara disponible en <strong>DSports</strong> y <strong>BarTV Mundial</strong>. En la plataforma de streaming, los suscriptores podran seguir el encuentro en vivo por <strong>DGO</strong>, <strong>America tvGO</strong>, <strong>DAZN</strong>, <strong>Paramount+</strong>, <strong>Disney+</strong> y <strong>Canal+</strong>.</p>

<p class="text-gray-700 leading-relaxed mb-6">Para quienes prefieran la experiencia auditiva, RPP ofrecera la transcripcion por radio en los 89.7 FM y 730 AM, ademas de la plataforma Audioplayer. El minuto a minuto actualizado estara disponible en RPP.pe.</p>

<h2 class="text-xl font-bold text-gray-900 mb-3 mt-8">Alineaciones probables</h2>

<div class="grid grid-cols-1 md:grid-cols-2 gap-6 mb-8">
<div class="bg-white border border-gray-200 rounded-xl p-5">
<h3 class="font-bold text-gray-900 mb-3 text-center">España</h3>
<p class="text-sm text-gray-600 leading-relaxed text-center">Unai Simón; Pedro Porro, Pau Cubarsí, Aymeric Laporte, Marc Cucurella; Lamine Yamal, Dani Olmo, Alex Baena; Mikel Oyarzabal.</p>
</div>
<div class="bg-white border border-gray-200 rounded-xl p-5">
<h3 class="font-bold text-gray-900 mb-3 text-center">Francia</h3>
<p class="text-sm text-gray-600 leading-relaxed text-center">Mike Maignan; Jules Koundé, Dayot Upamecano, William Saliba, Lucas Digne; Manu Koné, Adrien Rabiot; Ousmane Dembélé, Michael Olise, Désiré Doué; Kylian Mbappé.</p>
</div>
</div>

<div class="bg-gray-100 border-l-4 border-primary-600 p-5 rounded-r-lg my-8">
<p class="text-sm text-gray-600 italic"><strong>Fuente:</strong> Informacion compilada a partir de reportes de RPP (Radio Programas del Peru). Consultado el 14 de julio de 2026.</p>
</div>

<p class="text-gray-700 leading-relaxed mb-6">La final del Mundial 2026 se disputara el proximo domingo 19 de julio, y el ganador de este duelo europeo tendra la oportunidad de coronarse como campeón del mundo. España busca su segunda estrella, mientras Francia aspire a levantar su tercera copa.</p>',
            ],
            [
                'id' => 3,
                'titulo' => 'Argentina vs Inglaterra EN VIVO: a que hora juegan y donde ver la semifinal del Mundial 2026',
                'resumen' => 'La Albiceleste de Lionel Scaloni se mide con los ingleses en el Estadio Atlanta por un lugar en la gran final. Messi busca su segunda estrella mundialista en el que puede ser su ultimo Mundial.',
                'categoria' => 'Deportes',
                'imagen' => '/img/argentina-vs-inglaterra.webp',
                'imagenAlt' => 'Selecciones de Argentina e Inglaterra disputando una semifinal del Mundial 2026 en el Estadio Atlanta',
                'autor' => 'Redaccion Deportiva',
                'fecha' => '15 Jul 2026',
                'fechaISO' => '2026-07-15',
                'slug' => 'argentina-vs-inglaterra-semifinal-mundial-2026-hora-canal',
                'contenido' => '<p class="text-lg text-gray-700 leading-relaxed mb-6">El duelo que el futbol mundial esperaba se concreta este miercoles 15 de julio en el Estadio Atlanta: Argentina e Inglaterra se enfrentan en la segunda semifinal del Mundial 2026, en un partido que promete ser uno de los mas memorables de esta edicion del torneo. Ambas selecciones llegan con historial, con estrellas de primer nivel y con el objetivo claro de llegar a la gran final.</p>

<h2 class="text-xl font-bold text-gray-900 mb-3 mt-8">Argentina, la vigente campeona que no se rinde</h2>

<p class="text-gray-700 leading-relaxed mb-6">La seleccion argentina, liderada por Lionel Scaloni, llega a esta semifinal luego de superar partidos complicados desde los octavos de final. El camino no ha sido facil para la Albiceleste, que ha tenido que recurrir a su jerarquia y experiencia para avanzar en un torneo donde los favoritos han ido cayendo uno a uno.</p>

<p class="text-gray-700 leading-relaxed mb-6">El gran capitan, Lionel Messi, sigue siendo el eje del equipo. A sus 39 anos, el Diez demuestra que sigue siendo capaz de decidir partidos con su magia habitual. Junto a el, Julian Alvarez ha sido clave en la delantera, mientras que el mediocampo compuesto por Rodrigo De Paul, Enzo Fernandez y Alexis Mac Allister ha dado la solidez necesaria para competir al mas alto nivel.</p>

<h2 class="text-xl font-bold text-gray-900 mb-3 mt-8">Inglaterra, la sorpresa que llego para quedarse</h2>

<p class="text-gray-700 leading-relaxed mb-6">Los ingleses han tenido un camino mas dificil que el de Argentina en este Mundial. Incluso lograron superar a una de las selecciones locales, demostrando una capacidad de adaptation y resiliencia que pocas veces se les habia visto en grandes torneos. Bajo la direccion de Gareth Southgate, la seleccion britanica ha mostrado un futbol practico pero efectivo.</p>

<p class="text-gray-700 leading-relaxed mb-6">Bukayo Saka y Jude Bellingham son las figuras que pueden hacer dano a la defensa argentina, mientras que Harry Kane sigue siendo el goleador mas peligroso del equipo. El mediocampo liderado por Declan Rice ha sido una muralla que ha costado atravesar a los rivales.</p>

<h2 class="text-xl font-bold text-gray-900 mb-3 mt-8">A que hora juegan por America Latina</h2>

<p class="text-gray-700 leading-relaxed mb-4">El encuentro comienza a las <strong>2:00 p.m. hora peruana</strong> (19:00 UTC) en el Estadio Atlanta. Los horarios en los principales paises de la region son:</p>

<ul class="list-disc list-inside text-gray-700 leading-relaxed mb-6 space-y-1">
<li><strong>Peru, Colombia y Ecuador:</strong> 2:00 p.m.</li>
<li><strong>Mexico (CDMX):</strong> 1:00 p.m.</li>
<li><strong>Chile, Bolivia y Venezuela:</strong> 3:00 p.m.</li>
<li><strong>Argentina, Brasil, Uruguay y Paraguay:</strong> 4:00 p.m.</li>
<li><strong>Inglaterra:</strong> 9:00 p.m.</li>
<li><strong>Estados Unidos (Washington):</strong> 3:00 p.m.</li>
</ul>

<h2 class="text-xl font-bold text-gray-900 mb-3 mt-8">Donde ver el partido EN VIVO</h2>

<p class="text-gray-700 leading-relaxed mb-6">En Peru, el partido sera transmitido en television abierta por <strong>America TV</strong> y <strong>TV Publica</strong>, mientras que en television por señal paga estara disponible en <strong>DSports</strong>. En streaming, los suscriptores podran seguir el encuentro en vivo por <strong>DGO</strong>, <strong>America tvGO</strong>, <strong>DAZN</strong>, <strong>Paramount+</strong> y <strong>Disney+</strong>.</p>

<p class="text-gray-700 leading-relaxed mb-6">Para quienes prefieran la experiencia auditiva, RPP ofrecera la transcripcion por radio en los 89.7 FM y 730 AM, ademas de la plataforma Audioplayer. El minuto a minuto estara disponible en RPP.pe.</p>

<h2 class="text-xl font-bold text-gray-900 mb-3 mt-8">Alineaciones probables</h2>

<div class="grid grid-cols-1 md:grid-cols-2 gap-6 mb-8">
<div class="bg-white border border-gray-200 rounded-xl p-5">
<h3 class="font-bold text-gray-900 mb-3 text-center">Argentina</h3>
<p class="text-sm text-gray-600 leading-relaxed text-center">Emiliano Martínez; Nahuel Molina, Cuti Romero, Lisandro Martínez, Nicolás Tagliafico; Rodrigo De Paul, Leandro Paredes, Enzo Fernández, Alexis Mac Allister; Lionel Messi y Julián Álvarez.</p>
</div>
<div class="bg-white border border-gray-200 rounded-xl p-5">
<h3 class="font-bold text-gray-900 mb-3 text-center">Inglaterra</h3>
<p class="text-sm text-gray-600 leading-relaxed text-center">Jordan Pickford; Reece James, Ezri Konsa, Marc Guehi, Nico O&#039;Reilly; Elliot Anderson, Declan Rice; Bukayo Saka, Jude Bellingham, Anthony Gordon; Harry Kane.</p>
</div>
</div>

<h2 class="text-xl font-bold text-gray-900 mb-3 mt-8">Un duelo con historia</h2>

<p class="text-gray-700 leading-relaxed mb-6">Argentina e Inglaterra han protagonizado algunos de los momentos mas recordados en la historia de los Mundiales. Desde el gol de mano de Diego Maradona en Mexico 1986 hasta los penales de Rusia 2018, cada encuentro entre estas dos selecciones ha dejado una huella imborrable en el futbol mundial.</p>

<p class="text-gray-700 leading-relaxed mb-6">Ahora, una nueva generacion de jugadores busca escribir su propio capitulo en esta rivalidad historica. Messi, que podria estar jugando su ultimo Mundial, tiene la oportunidad de llevar a Argentina a otra final mundialista, mientras que Bellingham y Saka aspiran a devolver a Inglaterra a la cima del futbol mundial.</p>

<div class="bg-gray-100 border-l-4 border-primary-600 p-5 rounded-r-lg my-8">
<p class="text-sm text-gray-600 italic"><strong>Fuente:</strong> Informacion compilada a partir de reportes de RPP (Radio Programas del Peru). Consultado el 15 de julio de 2026.</p>
</div>

<p class="text-gray-700 leading-relaxed mb-6">La final del Mundial 2026 se disputara el proximo domingo 19 de julio en el Estadio MetLife de Nueva Jersey. El ganador de este duelo se unira al vencedor del compromiso entre España y Francia para definir al campeón del mundo.</p>',
            ],
        ];
    }
}
