<?php
// Remplit la base avec les jeux Timeline Battle et Popcorn Clash.
// A lancer une seule fois sur l'hebergement, puis a supprimer.

header('Content-Type: application/json; charset=utf-8');
require 'db.php';

$key = $_GET['key'] ?? '';
if ($key !== 'titoue-2026-seed-games') {
    http_response_code(403);
    echo json_encode(['message' => 'Cle manquante ou invalide']);
    exit;
}

function columnExists($pdo, $table, $column) {
    $stmt = $pdo->prepare("SHOW COLUMNS FROM `$table` LIKE ?");
    $stmt->execute([$column]);
    return (bool)$stmt->fetch();
}

function ensureColumn($pdo, $table, $column, $definition) {
    if (!columnExists($pdo, $table, $column)) {
        $pdo->exec("ALTER TABLE `$table` ADD COLUMN `$column` $definition");
    }
}

try {
    // Les ALTER TABLE provoquent un commit implicite sur MySQL : pas de transaction ici.
    $enum = "ENUM('blitz','memory','imposteur','geo','sondage','juste_prix','timeline','popcorn','alcool_order') NOT NULL";
    $pdo->exec("ALTER TABLE group_games MODIFY game_type $enum");
    $pdo->exec("ALTER TABLE game_questions MODIFY game_type $enum");

    ensureColumn($pdo, 'game_questions', 'date_event', 'VARCHAR(100) DEFAULT NULL');
    ensureColumn($pdo, 'game_questions', 'hints', 'TEXT DEFAULT NULL');

    $pdo->exec("DELETE FROM game_questions WHERE game_type IN ('timeline','popcorn')");

    $insert = $pdo->prepare("
        INSERT INTO game_questions
        (game_type, question, options, answer, explanation, date_event, hints, active)
        VALUES (?, ?, ?, ?, ?, ?, ?, 1)
    ");

    $timeline = [
        ['Sortie du premier film Toy Story', [], '1995', 'Toy Story est le premier long metrage entierement realise en images de synthese par Pixar.', '1995'],
        ['Lancement de YouTube', [], '2005', 'YouTube est lance en 2005 par Steve Chen, Chad Hurley et Jawed Karim.', '2005'],
        ['Sortie du premier iPhone', [], '2007', 'Steve Jobs presente le premier iPhone en janvier 2007.', '2007'],
        ['Lancement mondial de Netflix en streaming', [], '2007', 'Netflix lance son service de streaming en 2007, avant son expansion internationale.', '2007'],
        ['Sortie du film Avatar de James Cameron', [], '2009', 'Avatar popularise massivement la 3D moderne au cinema.', '2009'],
        ['Creation d Instagram', [], '2010', 'Instagram est lance en octobre 2010 avant son rachat par Meta en 2012.', '2010'],
        ['Sortie du jeu Minecraft en version officielle', [], '2011', 'Minecraft sort officiellement en 2011 apres une longue phase alpha/beta.', '2011'],
        ['Sortie de Frozen / La Reine des neiges', [], '2013', 'La Reine des neiges devient un enorme phenomene Disney en 2013.', '2013'],
        ['Premiere diffusion de Stranger Things', [], '2016', 'Stranger Things arrive sur Netflix en juillet 2016.', '2016'],
        ['Explosion mondiale de TikTok apres fusion avec Musical.ly', [], '2018', 'TikTok se developpe fortement a l international apres la fusion avec Musical.ly en 2018.', '2018'],
        ['Sortie du film Avengers: Endgame', [], '2019', 'Avengers: Endgame conclut la saga de l Infini du MCU en 2019.', '2019'],
        ['Lancement de Disney+', [], '2019', 'Disney+ est lance aux Etats-Unis en novembre 2019.', '2019'],
        ['Animal Crossing: New Horizons devient un phenomene mondial', [], '2020', 'Le jeu sort en mars 2020 sur Nintendo Switch et accompagne les confinements.', '2020'],
        ['Squid Game devient un phenomene mondial sur Netflix', [], '2021', 'La serie sud-coreenne devient l un des plus gros succes de Netflix en 2021.', '2021'],
        ['Sortie de la serie Wednesday sur Netflix', [], '2022', 'Wednesday relance la famille Addams aupres d un public mondial en 2022.', '2022'],
        ['Sortie du film Barbie de Greta Gerwig', [], '2023', 'Barbie devient l un des grands phenomenes cinema de 2023.', '2023'],
    ];

    foreach ($timeline as $q) {
        $insert->execute([
            'timeline',
            $q[0],
            json_encode($q[1], JSON_UNESCAPED_UNICODE),
            $q[2],
            $q[3],
            $q[4],
            null
        ]);
    }

    $popcorn = [
        ['Stranger Things', ['Stranger Things','Dark','The Boys','Wednesday'], 'Serie Netflix devenue culte avec Eleven, Hawkins et le monde a l envers.', ['Une petite ville americaine cache des experiences scientifiques inquietantes.','Un monde parallele y est appele l Upside Down.','Eleven adore les gaufres.']],
        ['One Piece', ['One Piece','Naruto','Demon Slayer','Jujutsu Kaisen'], 'Manga et anime centre sur Luffy et son equipage a la recherche du tresor ultime.', ['Un heros elastique veut devenir le roi d un monde de pirates.','Son equipage navigue sur Grand Line.','Son tresor ultime donne son nom a l oeuvre.']],
        ['GP Explorer', ['GP Explorer','Koh-Lanta','Top Gear France','Formula 1 Drive to Survive'], 'Evenement cree par Squeezie autour d une course de Formule 4 avec des createurs web.', ['Des createurs de contenu s affrontent sur circuit.','L evenement a beaucoup tourne autour de la Formule 4.','Squeezie en est l organisateur.']],
        ['Breaking Bad', ['Breaking Bad','Better Call Saul','Ozark','Narcos'], 'Serie culte avec Walter White, Jesse Pinkman et l empire de methamphetamine.', ['Un professeur de chimie bascule dans le crime.','Los Pollos Hermanos y joue un role important.','Le duo central s appelle Walter et Jesse.']],
        ['Loki', ['Loki','Moon Knight','WandaVision','The Mandalorian'], 'Serie Marvel autour du dieu de la malice, de la TVA et des variants.', ['On y parle beaucoup de variants et de timelines.','Une organisation bureaucratique surveille le temps.','Le heros est le dieu de la malice du MCU.']],
        ['Arcane', ['Arcane','Cyberpunk Edgerunners','Castlevania','Invincible'], 'Serie animee adaptee de League of Legends, centree sur Piltover, Zaun, Vi et Jinx.', ['Deux villes opposees structurent l histoire.','Deux soeurs, Vi et Jinx, sont au coeur du drame.','La serie vient de l univers League of Legends.']],
        ['The Last of Us', ['The Last of Us','The Walking Dead','Resident Evil','Fallout'], 'Jeu puis serie HBO autour de Joel, Ellie et une infection fongique.', ['Une infection transforme la civilisation.','Un duo traverse une Amerique post-apocalyptique.','Les prenoms Joel et Ellie sont centraux.']],
        ['Inoxtag', ['Inoxtag','Squeezie','Mister V','Gotaga'], 'Createur francais connu notamment pour son documentaire Kaizen et son ascension de l Everest.', ['Createur web francais tres suivi par les jeunes.','Il a documente une enorme preparation physique.','Son projet Kaizen culmine avec l Everest.']],
        ['Attack on Titan', ['Attack on Titan','Death Note','Tokyo Ghoul','Chainsaw Man'], 'Anime et manga aussi connu sous le nom L Attaque des Titans.', ['L humanite vit protegee derriere d immenses murs.','Des creatures geantes menacent les survivants.','Eren, Mikasa et Armin en sont les figures centrales.']],
        ['Fortnite', ['Fortnite','Minecraft','Roblox','Fall Guys'], 'Battle royale d Epic Games connu pour ses skins, ses danses et ses evenements live.', ['Le jeu melange combat, construction et saisons.','Il accueille souvent des concerts et crossovers enormes.','Le bus de combat est devenu iconique.']],
        ['The Mandalorian', ['The Mandalorian','Andor','Obi-Wan Kenobi','Ahsoka'], 'Serie Star Wars popularisee par Din Djarin et Grogu.', ['Une serie de chasseurs de primes dans l univers Star Wars.','Une petite creature verte est devenue un phenomene meme.','La phrase This is the way lui est associee.']],
        ['Demon Slayer', ['Demon Slayer','My Hero Academia','Dragon Ball Super','Spy x Family'], 'Anime et manga ou Tanjiro affronte des demons pour sauver sa soeur Nezuko.', ['Un jeune heros porte souvent une boite en bois.','Sa soeur a ete transformee.','Tanjiro et Nezuko sont les deux noms a retenir.']],
    ];

    foreach ($popcorn as $q) {
        $insert->execute([
            'popcorn',
            'De quelle oeuvre ou personnalite pop culture parle-t-on ?',
            json_encode($q[1], JSON_UNESCAPED_UNICODE),
            $q[0],
            $q[2],
            null,
            json_encode($q[3], JSON_UNESCAPED_UNICODE)
        ]);
    }

    $timelineCount = (int)$pdo->query("SELECT COUNT(*) FROM game_questions WHERE game_type = 'timeline' AND active = 1")->fetchColumn();
    $popcornCount = (int)$pdo->query("SELECT COUNT(*) FROM game_questions WHERE game_type = 'popcorn' AND active = 1")->fetchColumn();

    echo json_encode([
        'message' => 'Base mise a jour',
        'timeline_questions' => $timelineCount,
        'popcorn_questions' => $popcornCount
    ], JSON_UNESCAPED_UNICODE);
} catch (Throwable $e) {
    http_response_code(500);
    echo json_encode(['message' => $e->getMessage()]);
}
