<?php
require_once __DIR__ . '/../src/db.php';
require_once __DIR__ . '/../src/auth.php';

// Script CLI uniquement : jamais exécutable via le web.
if (php_sapi_name() !== 'cli') {
    http_response_code(403);
    exit('Accès interdit.');
}

if ($argc !== 3) {
    echo "Usage : php scripts/creer-admin.php <login> <mot_de_passe>\n";
    exit(1);
}

$login = $argv[1];
$pass = $argv[2];

if (strlen($pass) < 10) {
    echo "Erreur : le mot de passe doit contenir au moins 10 caractères.\n";
    exit(1);
}

try {
    creer_admin(db(), $login, $pass);
    echo "Compte admin « $login » créé avec succès.\n";
} catch (PDOException $ex) {
    // Même contrat que enregistrer_candidature() : SQLSTATE 23000 = violation de contrainte
    // d'unicité. Une seule contrainte possible ici (admins.login), pas d'ambiguïté à lever.
    $etat = (string)($ex->errorInfo[0] ?? $ex->getCode());
    if ($etat === '23000') {
        echo "Erreur : le login « $login » existe déjà.\n";
        exit(1);
    }
    throw $ex;
}
