<?php
defined('ABSPATH') || exit;

// -------------------------
// Traitement : vider l'historique
// -------------------------
if (
    isset($_POST['hpixl_vider_historique_nonce']) &&
    wp_verify_nonce(sanitize_text_field(wp_unslash($_POST['hpixl_vider_historique_nonce'])), 'hpixl_vider_historique') &&
    current_user_can('manage_options')
) {
    global $wpdb;
    $wpdb->query('TRUNCATE TABLE ' . $wpdb->prefix . HPIXL_SECURICHECK_TABLE_BRUTE_FORCE_LOGS);
    echo '<div class="notice notice-success"><p>' . esc_html__('Historique vidé avec succès.', 'securicheck') . '</p></div>';
}

// -------------------------
// Récupération des logs
// -------------------------
global $wpdb;
$table = $wpdb->prefix . HPIXL_SECURICHECK_TABLE_BRUTE_FORCE_LOGS;
$logs = $wpdb->get_results(
    "SELECT * FROM {$table} ORDER BY date_action DESC LIMIT 200"
);

$brute_force_enabled = get_option('hpixl_securicheck_toggle_brute_force') == 1;
?>

<div class="hpixl-securicheck-settings-form-panel">
    <div class="hpixl-securicheck-section hpixl-securicheck-protection-login-historique-intro">
        <strong><?php esc_html_e('Historique des blocages', 'securicheck'); ?></strong>
        <p><?php esc_html_e('Retrouvez ici l\'historique des blocages et déblocages manuels d\'adresses IP.', 'securicheck'); ?></p>
        <p><?php esc_html_e('Les 200 dernières entrées sont affichées. Les déblocages automatiques par expiration ne sont pas tracés.', 'securicheck'); ?></p>
    </div>
</div>

<?php if (!$brute_force_enabled): ?>
    <div class="notice notice-warning inline hpixl-securicheck-protection-login-historique-notice">
        <p><?php esc_html_e('La protection Brute Force est désactivée. Aucun blocage ne sera enregistré tant qu\'elle est inactive.', 'securicheck'); ?></p>
    </div>
<?php endif; ?>

<table class="wp-list-table widefat striped hpixl-securicheck-protection-login-historique-table">
    <thead>
        <tr>
            <th><?php esc_html_e('Action', 'securicheck'); ?></th>
            <th><?php esc_html_e('Raison', 'securicheck'); ?></th>
            <th><?php esc_html_e('IP', 'securicheck'); ?></th>
            <th><?php esc_html_e('Date', 'securicheck'); ?></th>
            <th><?php esc_html_e('Auteur', 'securicheck'); ?></th>
            <th><?php esc_html_e('Durée blocage', 'securicheck'); ?></th>
        </tr>
    </thead>
    <tbody>
        <?php if (!empty($logs)): ?>
            <?php foreach ($logs as $log): ?>
                <tr>

                    <td>
                        <?php if ($log->action === 'blocage'): ?>
                            <span class="hpixl-securicheck-protection-login-historique-action--blocage"><?php esc_html_e('Blocage', 'securicheck'); ?></span>
                        <?php else: ?>
                            <span class="hpixl-securicheck-protection-login-historique-action--deblocage"><?php esc_html_e('Déblocage', 'securicheck'); ?></span>
                        <?php endif; ?>
                    </td>
                    <td><?php echo $log->raison !== null ? esc_html($log->raison) : '—'; ?></td>
                    <td><?php echo esc_html($log->ip); ?></td>
                    <td><?php echo esc_html(wp_date('d/m/Y H:i:s', strtotime($log->date_action))); ?></td>
                    <td>
                        <?php if ($log->auteur_action === 'Securicheck'): ?>
                            <span class="hpixl-securicheck-protection-login-historique-badge">
                                <span class="icon-securicheck"></span>
                                Securicheck
                            </span>
                        <?php else: ?>
                            <?php echo esc_html($log->auteur_action); ?>
                        <?php endif; ?>
                    </td>
                    <td>
                        <?php
                        if ($log->duree_blocage !== null) {
                            $minutes = round($log->duree_blocage / 60);
                            echo esc_html($minutes . ' min');
                        } else {
                            echo '—';
                        }
                        ?>
                    </td>
                </tr>
            <?php endforeach; ?>
        <?php else: ?>
            <tr>
                <td colspan="6"><?php esc_html_e('Aucun événement enregistré.', 'securicheck'); ?></td>
            </tr>
        <?php endif; ?>
    </tbody>
</table>

<form method="post" action="" class="hpixl-securicheck-protection-login-historique-form">
    <?php wp_nonce_field('hpixl_vider_historique', 'hpixl_vider_historique_nonce'); ?>
    <button type="submit" class="button button-secondary" onclick="return confirm('<?php esc_attr_e('Vider tout l\'historique ? Cette action est irréversible.', 'securicheck'); ?>')">
        <?php esc_html_e('Vider l\'historique', 'securicheck'); ?>
    </button>
</form>