<?php

declare(strict_types=1);

$preparation = is_array($preparation ?? null)
    ? $preparation
    : [];

$report = is_array($preparation['report'] ?? null)
    ? $preparation['report']
    : [];

$sql = is_array($report['sql'] ?? null)
    ? $report['sql']
    : [];

$complete = !empty($executionComplete);
$summary = is_array($executionSummary ?? null)
    ? $executionSummary
    : [];
?>
<div
    class="darlink-execution-step"
    data-installation-runner
    data-api-url="api.php"
    data-csrf-token="<?= htmlspecialchars(
        (string)$csrfToken,
        ENT_QUOTES,
        'UTF-8'
    ) ?>"
    data-already-complete="<?= $complete ? '1' : '0' ?>"
>
    <div class="darlink-page-heading">
        <div>
            <span class="darlink-page-kicker">
                Installation Engine v1.0
            </span>

            <h2>Installation de la base de données</h2>

            <p>
                Les migrations sont exécutées une par une
                et enregistrées dans la table system_migrations.
            </p>
        </div>

        <div class="darlink-readiness <?= $complete ? 'is-ready' : 'has-errors' ?>"
             data-execution-status>
            <i class="bi <?= $complete
                ? 'bi-check-circle-fill'
                : 'bi-hourglass-split' ?>"></i>

            <div>
                <strong data-status-title>
                    <?= $complete
                        ? 'Installation terminée'
                        : 'Prêt à démarrer' ?>
                </strong>

                <span data-status-message>
                    <?= $complete
                        ? 'La base de données est opérationnelle.'
                        : (int)($sql['files_count'] ?? 0)
                            . ' fichier(s) SQL détecté(s).' ?>
                </span>
            </div>
        </div>
    </div>

    <section class="darlink-execution-card">
        <div class="darlink-execution-progress-header">
            <strong>Progression réelle</strong>
            <span data-progress-label>
                <?= $complete ? '100 %' : '0 %' ?>
            </span>
        </div>

        <div class="progress darlink-execution-progress">
            <div
                class="progress-bar"
                data-progress-bar
                style="width: <?= $complete ? '100' : '0' ?>%"
                aria-valuenow="<?= $complete ? '100' : '0' ?>"
                aria-valuemin="0"
                aria-valuemax="100"
            ></div>
        </div>

        <div class="darlink-current-operation" data-current-operation>
            <?= $complete
                ? 'Toutes les migrations ont été traitées.'
                : 'Cliquez sur Installer Darlink ERP pour commencer.' ?>
        </div>

        <div class="darlink-install-log" data-install-log>
            <?php if ($complete): ?>
                <div class="darlink-log-line is-success">
                    Installation déjà terminée.
                </div>
            <?php else: ?>
                <div class="darlink-log-line is-muted">
                    Le journal d’installation apparaîtra ici.
                </div>
            <?php endif; ?>
        </div>

        <div class="darlink-execution-summary <?= $complete ? '' : 'd-none' ?>"
             data-execution-summary>
            <div>
                <strong data-summary-successes>
                    <?= (int)($summary['successes'] ?? 0) ?>
                </strong>
                <span>Migrations exécutées</span>
            </div>

            <div>
                <strong data-summary-baselines>
                    <?= (int)($summary['baselines'] ?? 0) ?>
                </strong>
                <span>Migrations référencées</span>
            </div>

            <div>
                <strong data-summary-statements>
                    <?= (int)($summary['statements'] ?? 0) ?>
                </strong>
                <span>Instructions SQL</span>
            </div>

            <div>
                <strong data-summary-duration>
                    <?= number_format(
                        ((int)($summary['duration_ms'] ?? 0)) / 1000,
                        2,
                        ',',
                        ' '
                    ) ?> s
                </strong>
                <span>Durée cumulée</span>
            </div>
        </div>
    </section>

    <div class="darlink-notice darlink-notice-warning mt-3">
        <i class="bi bi-info-circle-fill"></i>
        <span>
            Les instructions DDL de MySQL peuvent provoquer
            une validation automatique. Le moteur arrête immédiatement
            l’installation en cas d’erreur et conserve le journal détaillé.
        </span>
    </div>

    <div class="darlink-install-actions">
        <a
            href="index.php?step=5"
            class="btn darlink-install-btn-secondary"
            data-back-button
        >
            <i class="bi bi-arrow-left me-2"></i>
            Retour
        </a>

        <button
            type="button"
            class="btn darlink-install-btn-primary <?= $complete ? 'd-none' : '' ?>"
            data-start-installation
        >
            <i class="bi bi-play-circle me-2"></i>
            Installer Darlink ERP
        </button>

        <a
            href="index.php?step=7"
            class="btn darlink-install-btn-primary <?= $complete ? '' : 'd-none' ?>"
            data-continue-button
        >
            Continuer
            <i class="bi bi-arrow-right ms-2"></i>
        </a>
    </div>
</div>
