<?php

declare(strict_types=1);

require_once dirname(__DIR__) . '/lib/ChronooAuth.php';
require_once dirname(__DIR__) . '/lib/ChronooUi.php';
require_once dirname(__DIR__) . '/lib/ChronooSso.php';

$error = null;
$ok = null;
if (ChronooAuth::accountId() !== null) {
    header('Location: /account/');
    exit;
}

if (isset($_GET['err']) && is_string($_GET['err']) && $_GET['err'] !== '') {
    $error = $_GET['err'];
}
if (isset($_GET['ok']) && is_string($_GET['ok']) && $_GET['ok'] !== '') {
    $ok = $_GET['ok'];
}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (!ChronooAuth::verifyCsrf($_POST['csrf'] ?? null)) {
        $error = 'Session expirée, réessayez.';
    } else {
        $res = ChronooAuth::attempt((string) ($_POST['email'] ?? ''), (string) ($_POST['password'] ?? ''));
        if ($res['ok']) {
            header('Location: /account/');
            exit;
        }
        $error = $res['error'];
    }
}

ChronooAuth::startSession();
ChronooUi::layoutStart('Connexion');
?>
<div class="auth-card panel">
  <h1>Connexion</h1>
  <p class="lede">Accédez à vos profils et agendas connectés.</p>
  <?php ChronooUi::flash($error, $ok); ?>

  <?php ChronooSso::renderContinueButton(); ?>

  <form method="post">
    <input type="hidden" name="csrf" value="<?= htmlspecialchars(ChronooAuth::csrfToken(), ENT_QUOTES, 'UTF-8') ?>">
    <label for="email">Email</label>
    <input id="email" name="email" type="email" required autocomplete="email" value="<?= htmlspecialchars((string) ($_POST['email'] ?? ''), ENT_QUOTES, 'UTF-8') ?>">
    <label for="password">Mot de passe</label>
    <input id="password" name="password" type="password" required autocomplete="current-password">
    <button type="submit">Se connecter</button>
  </form>
  <p class="muted-link" style="margin-top:18px">Pas encore de compte ? <a href="/account/register.php">Inscription</a></p>
  <p class="muted-link">Email non vérifié ? <a href="/account/resend-verification.php">Renvoyer le lien de vérification</a></p>
</div>
<?php
ChronooUi::layoutEnd();
