<?php
require_once dirname(__DIR__) . '/config/database.php';
require_once dirname(__DIR__) . '/includes/auth_core.php';
require_once dirname(__DIR__) . '/includes/config_helper.php';

// Protezione base
require_auth();

// 1. Dati Dashboard
$anno_corrente = config_get('ANNO_TESSERAMENTO', date('Y'));
$mese_corrente = date('m');
$nome_mese = date('F');

// Incassi Mese Corrente
$stmt_incassi = $pdo->prepare("SELECT SUM(importo_pagato) FROM tesseramenti WHERE YEAR(dt_pagamento) = ? AND MONTH(dt_pagamento) = ?");
$stmt_incassi->execute([$anno_corrente, $mese_corrente]);
$incassi_mese = $stmt_incassi->fetchColumn() ?: 0.00;

// Soci Totali Approvati (Attivi)
$stmt_tot_soci = $pdo->query("SELECT COUNT(*) FROM soci WHERE deleted_at IS NULL AND dt_delibera IS NOT NULL");
$soci_totali = $stmt_tot_soci->fetchColumn() ?: 0;

// Soci in Regola (hanno pagato quota anno_corrente)
$stmt_in_regola = $pdo->prepare("SELECT COUNT(DISTINCT id_socio) FROM tesseramenti t JOIN soci s ON t.id_socio = s.id WHERE t.anno_riferimento = ? AND s.deleted_at IS NULL");
$stmt_in_regola->execute([$anno_corrente]);
$soci_in_regola = $stmt_in_regola->fetchColumn() ?: 0;

// Ultimi Versamenti
$stmt_ultimi = $pdo->query("
    SELECT t.id_transazione_esterna, t.dt_pagamento, t.metodo_pagamento, t.importo_pagato, s.numero_socio, s.nome, s.cognome 
    FROM tesseramenti t 
    JOIN soci s ON t.id_socio = s.id 
    ORDER BY t.dt_pagamento DESC 
    LIMIT 10
");
$ultimi_versamenti = $stmt_ultimi->fetchAll();

// Polizze Volontari: scadute o in scadenza entro 30 giorni
$stmt_polizze = $pdo->query("
    SELECT id, nome, cognome, polizza_rc, compagnia_assicurativa, dt_scadenza_polizza,
           CASE
               WHEN dt_scadenza_polizza < CURDATE() THEN 'scaduta'
               WHEN dt_scadenza_polizza <= DATE_ADD(CURDATE(), INTERVAL 30 DAY) THEN 'in_scadenza'
           END AS alert_tipo
    FROM volontari
    WHERE deleted_at IS NULL
      AND dt_uscita IS NULL
      AND dt_scadenza_polizza <= DATE_ADD(CURDATE(), INTERVAL 30 DAY)
    ORDER BY dt_scadenza_polizza ASC
");
$polizze_critiche = $stmt_polizze->fetchAll();

require_once dirname(__DIR__) . '/includes/header.php';
?>

<div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pb-2 mb-3 border-bottom">
    <h1 class="h2"><i class="bi bi-speedometer2"></i> Stato Tesseramenti <?= $anno_corrente ?></h1>
    <!-- Test deploy CI/CD: pulsante temporaneamente commentato per verifica visiva
    <div class="btn-toolbar mb-2 mb-md-0">
        <button type="button" class="btn btn-sm btn-outline-primary" onclick="alert('In un ambiente reale, qui chiamiamo via AJAX /api/sync/paypal_polling.php');">
            <i class="bi bi-arrow-repeat"></i> Sincronizza PayPal Ora
        </button>
    </div>
    -->
</div>

<!-- Dashboard Cards -->
<div class="row mb-4">
    <div class="col-md-3 mb-3">
        <div class="card border-primary shadow-sm h-100 py-2">
            <div class="card-body">
                <div class="row no-gutters align-items-center">
                    <div class="col mr-2">
                        <div class="text-xs fw-bold text-primary text-uppercase mb-1">Quote Mese Corrente</div>
                        <div class="h5 mb-0 fw-bold text-gray-800">&euro; <?= number_format($incassi_mese, 2, ',', '.') ?></div>
                    </div>
                    <div class="col-auto"><i class="bi bi-calendar-check fs-2 text-primary opacity-50"></i></div>
                </div>
            </div>
        </div>
    </div>
    <div class="col-md-3 mb-3">
        <div class="card border-success shadow-sm h-100 py-2">
            <div class="card-body">
                <div class="row no-gutters align-items-center">
                    <div class="col mr-2">
                        <div class="text-xs fw-bold text-success text-uppercase mb-1">Soci in Regola <?= $anno_corrente ?></div>
                        <div class="h5 mb-0 fw-bold text-gray-800"><?= $soci_in_regola ?> <span class="text-muted fs-6 fw-normal">su <?= $soci_totali ?></span></div>
                    </div>
                    <div class="col-auto"><i class="bi bi-person-check fs-2 text-success opacity-50"></i></div>
                </div>
            </div>
        </div>
    </div>
    
    <div class="col-md-3 mb-3">
        <div class="card border-warning shadow-sm h-100 py-2">
            <div class="card-body">
                <div class="row no-gutters align-items-center">
                    <div class="col mr-2">
                        <div class="text-xs fw-bold text-warning text-uppercase mb-1">Soci Morosi</div>
                        <div class="h5 mb-0 fw-bold text-gray-800 text-danger"><?= max(0, $soci_totali - $soci_in_regola) ?></div>
                    </div>
                    <div class="col-auto"><i class="bi bi-exclamation-triangle fs-2 text-warning opacity-50"></i></div>
                </div>
            </div>
        </div>
    </div>

    <div class="col-md-3 mb-3">
        <?php $n_polizze = count($polizze_critiche); $n_scadute = count(array_filter($polizze_critiche, fn($p) => $p['alert_tipo'] === 'scaduta')); ?>
        <div class="card <?= $n_scadute > 0 ? 'border-danger' : ($n_polizze > 0 ? 'border-warning' : 'border-secondary') ?> shadow-sm h-100 py-2">
            <div class="card-body">
                <div class="row no-gutters align-items-center">
                    <div class="col mr-2">
                        <div class="text-xs fw-bold <?= $n_scadute > 0 ? 'text-danger' : 'text-warning' ?> text-uppercase mb-1">Polizze Volontari</div>
                        <div class="h5 mb-0 fw-bold <?= $n_scadute > 0 ? 'text-danger' : ($n_polizze > 0 ? 'text-warning' : 'text-success') ?>">
                            <?php if ($n_polizze === 0): ?>
                                <i class="bi bi-check-circle"></i> OK
                            <?php else: ?>
                                <?= $n_polizze ?> <span class="fs-6 fw-normal">alert</span>
                            <?php endif; ?>
                        </div>
                    </div>
                    <div class="col-auto"><i class="bi bi-shield-exclamation fs-2 <?= $n_scadute > 0 ? 'text-danger' : 'text-warning' ?> opacity-50"></i></div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- Tabella Ultimi Versamenti -->
<div class="card shadow-sm border-0">
    <div class="card-header bg-white fw-bold py-3"><i class="bi bi-clock-history"></i> Ultimi 10 Versamenti Registrati</div>
    <div class="table-responsive">
        <table class="table table-hover align-middle mb-0">
            <thead class="table-light">
                <tr>
                    <th>Data</th>
                    <th>Socio</th>
                    <th>Metodo</th>
                    <th>Transazione / Rif.</th>
                    <th class="text-end">Importo</th>
                </tr>
            </thead>
            <tbody>
                <?php if (empty($ultimi_versamenti)): ?>
                    <tr><td colspan="5" class="text-center text-muted py-4">Nessun versamento registrato per quest'anno.</td></tr>
                <?php else: ?>
                    <?php foreach ($ultimi_versamenti as $v): ?>
                        <tr>
                            <td><?= date('d/m/Y H:i', strtotime($v['dt_pagamento'])) ?></td>
                            <td>
                                <strong>Socio #<?= htmlspecialchars($v['numero_socio'] ?? '') ?></strong><br>
                                <span class="small text-muted"><?= htmlspecialchars(($v['nome'] ?? '') . ' ' . ($v['cognome'] ?? '')) ?></span>
                            </td>
                            <td>
                                <?php if ($v['metodo_pagamento'] == 'PayPal'): ?>
                                    <span class="badge bg-primary text-white"><i class="bi bi-paypal"></i> PayPal</span>
                                <?php elseif ($v['metodo_pagamento'] == 'Bonifico'): ?>
                                    <span class="badge bg-secondary"><i class="bi bi-bank"></i> Bonifico</span>
                                <?php else: ?>
                                    <span class="badge bg-success"><i class="bi bi-cash"></i> <?= htmlspecialchars($v['metodo_pagamento'] ?? '') ?></span>
                                <?php endif; ?>
                            </td>
                            <td><code class="text-dark bg-light px-2 py-1 rounded"><?= htmlspecialchars($v['id_transazione_esterna'] ?? '') ?></code></td>
                            <td class="text-end fw-bold text-success">€ <?= number_format($v['importo_pagato'], 2, ',', '.') ?></td>
                        </tr>
                    <?php endforeach; ?>
                <?php endif; ?>
            </tbody>
        </table>
    </div>
</div>

<!-- Widget Polizze Volontari Critiche -->
<?php if (!empty($polizze_critiche)): ?>
<div class="card shadow-sm border-0 mt-4 border-start border-4 <?= $n_scadute > 0 ? 'border-danger' : 'border-warning' ?>">
    <div class="card-header fw-bold <?= $n_scadute > 0 ? 'bg-danger text-white' : 'bg-warning text-dark' ?>">
        <i class="bi bi-shield-exclamation"></i>
        <?= $n_scadute > 0 ? "URGENTE — $n_scadute Polizz" . ($n_scadute === 1 ? 'a Scaduta' : 'e Scadute') : '' ?>
        <?= ($n_polizze - $n_scadute) > 0 ? ($n_scadute > 0 ? ' &mdash; ' : '') . ($n_polizze - $n_scadute) . ' in Scadenza entro 30 gg' : '' ?>
        — Registro Volontari (Art. 17 D.Lgs. 117/2017)
    </div>
    <div class="table-responsive">
        <table class="table table-hover align-middle mb-0">
            <thead class="table-light">
                <tr>
                    <th>Volontario</th>
                    <th>Polizza / Compagnia</th>
                    <th>Scadenza</th>
                    <th>Stato</th>
                    <th></th>
                </tr>
            </thead>
            <tbody>
                <?php foreach ($polizze_critiche as $pv): ?>
                <tr class="<?= $pv['alert_tipo'] === 'scaduta' ? 'table-danger' : 'table-warning' ?>">
                    <td class="fw-bold"><?= htmlspecialchars(($pv['cognome'] ?? '') . ' ' . ($pv['nome'] ?? '')) ?></td>
                    <td>
                        <span class="fw-semibold"><?= htmlspecialchars($pv['polizza_rc'] ?? '—') ?></span><br>
                        <small class="text-muted"><?= htmlspecialchars($pv['compagnia_assicurativa'] ?? '') ?></small>
                    </td>
                    <td class="fw-bold <?= $pv['alert_tipo'] === 'scaduta' ? 'text-danger' : 'text-warning' ?>">
                        <?= $pv['dt_scadenza_polizza'] ? date('d/m/Y', strtotime($pv['dt_scadenza_polizza'])) : '—' ?>
                    </td>
                    <td>
                        <?php if ($pv['alert_tipo'] === 'scaduta'): ?>
                            <span class="badge bg-danger"><i class="bi bi-x-circle"></i> Scaduta</span>
                        <?php else: ?>
                            <span class="badge bg-warning text-dark"><i class="bi bi-clock"></i> In Scadenza</span>
                        <?php endif; ?>
                    </td>
                    <td><a href="/volontari/modifica.php?id=<?= $pv['id'] ?>" class="btn btn-sm btn-outline-secondary"><i class="bi bi-pencil"></i> Aggiorna</a></td>
                </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
    </div>
</div>
<?php endif; ?>

<?php require_once dirname(__DIR__) . '/includes/footer.php'; ?>
