<?php
/**
 * @var Laminas\View\Renderer\PhpRenderer $this
 * @var bool   $loggedIn
 * @var \Tour\Entity\Show[]  $upcomingShows
 * @var \Tour\Entity\Tour[]  $tours
 * @var \Tour\Entity\Team[]  $teams
 * @var array  $stats  ['shows'=>int, 'tours'=>int, 'teams'=>int]
 */
$this->headTitle('Dashboard');
?>

<?php if (!$loggedIn): ?>
    <div class="auth-wrapper">
        <div class="text-center">
           
            <h1 class="mt-3 mb-1" style="font-size:1.6rem;font-weight:700">On Tour</h1>
            <p class="text-muted mb-4">Gestion de tournées et de shows</p>
            <div class="d-flex gap-3 justify-content-center">
                <a href="<?= $this->url('auth/login') ?>" class="btn btn-app btn-lg">Connexion</a>
                <a href="<?= $this->url('auth/register') ?>" class="btn btn-outline-secondary btn-lg">Inscription</a>
            </div>
        </div>
    </div>
<?php else: ?>

<div class="page-title mt-3">
    <i class="bi bi-house-fill"></i> Dashboard
</div>

<div class="dashboard-grid" id="dashboardGrid">

    <!-- ── Stats ─────────────────────────────── -->
    <div data-widget="stats" class="widget-block">
        <div class="card-app">
            <div class="settings-section-title mb-3">
                <i class="bi bi-bar-chart-fill"></i> Statistiques
            </div>
            <div class="d-flex gap-3 flex-wrap">
                <div class="stat-chip">
                    <div class="stat-value"><?= $stats['shows'] ?></div>
                    <div class="stat-label">Shows</div>
                </div>
                <div class="stat-chip">
                    <div class="stat-value"><?= $stats['tours'] ?></div>
                    <div class="stat-label">Tournées</div>
                </div>
                <div class="stat-chip">
                    <div class="stat-value"><?= $stats['teams'] ?></div>
                    <div class="stat-label">Équipes</div>
                </div>
            </div>
        </div>
    </div>

    <!-- ── Prochains shows ────────────────────── -->
    <div data-widget="shows_upcoming" class="widget-block">
        <div class="card-app">
            <div class="d-flex justify-content-between align-items-center mb-3">
                <div class="settings-section-title">
                    <i class="bi bi-calendar3-event-fill"></i> Prochains shows
                </div>
                <a href="<?= $this->url('shows', ['action' => 'index']) ?>" class="btn btn-sm btn-app">Voir tous</a>
            </div>
            <?php if (!empty($upcomingShows)): ?>
                <div class="d-flex flex-column gap-2">
                    <?php foreach ($upcomingShows as $show): ?>
                        <div class="d-flex align-items-center gap-3">
                            <div class="show-date-chip">
                                <span class="show-date-day"><?= $show->getDate()->format('d') ?></span>
                                <span class="show-date-month"><?= mb_strtoupper($show->getDate()->format('M')) ?></span>
                            </div>
                            <div class="flex-grow-1 min-w-0">
                                <div class="fw-semibold text-truncate"><?= $this->escapeHtml($show->getTitle()) ?></div>
                                <div class="text-muted" style="font-size:.8rem">
                                    <?php if ($show->getCity()): ?>
                                        <i class="bi bi-geo-alt"></i> <?= $this->escapeHtml($show->getCity()) ?>
                                    <?php endif; ?>
                                    <?php if ($show->getVenue()): ?>
                                        · <?= $this->escapeHtml($show->getVenue()) ?>
                                    <?php endif; ?>
                                </div>
                            </div>
                        </div>
                    <?php endforeach; ?>
                </div>
            <?php else: ?>
                <p class="text-muted mb-0" style="font-size:.875rem">Aucun show à venir.</p>
            <?php endif; ?>
        </div>
    </div>

    <!-- ── Tournées ───────────────────────────── -->
    <div data-widget="tours" class="widget-block">
        <div class="card-app">
            <div class="d-flex justify-content-between align-items-center mb-3">
                <div class="settings-section-title">
                    <i class="bi bi-music-note-list"></i> Tournées
                </div>
                <a href="<?= $this->url('tours', ['action' => 'index']) ?>" class="btn btn-sm btn-app">Voir toutes</a>
            </div>
            <?php if (!empty($tours)): ?>
                <div class="d-flex flex-column gap-2">
                    <?php foreach ($tours as $tour): ?>
                        <a href="<?= $this->url('tours', ['action' => 'view', 'id' => $tour->getId()]) ?>"
                           class="d-flex justify-content-between align-items-center text-decoration-none"
                           style="padding:.5rem .6rem;background:var(--color-surface-2);border-radius:var(--radius-sm)">
                            <span class="fw-semibold text-truncate" style="color:var(--color-text)">
                                <?= $this->escapeHtml($tour->getName()) ?>
                            </span>
                            <span class="badge status-<?= $tour->getStatus()->value ?> ms-2 flex-shrink-0">
                                <?= match($tour->getStatus()->value) {
                                    'planned'   => 'Planifiée',
                                    'ongoing'   => 'En cours',
                                    'completed' => 'Terminée',
                                    default     => 'Annulée',
                                } ?>
                            </span>
                        </a>
                    <?php endforeach; ?>
                </div>
            <?php else: ?>
                <p class="text-muted mb-0" style="font-size:.875rem">Aucune tournée.</p>
            <?php endif; ?>
        </div>
    </div>

    <!-- ── Équipes ────────────────────────────── -->
    <div data-widget="teams" class="widget-block">
        <div class="card-app">
            <div class="d-flex justify-content-between align-items-center mb-3">
                <div class="settings-section-title">
                    <i class="bi bi-people-fill"></i> Équipes
                </div>
                <a href="<?= $this->url('teams', ['action' => 'index']) ?>" class="btn btn-sm btn-app">Voir toutes</a>
            </div>
            <?php if (!empty($teams)): ?>
                <div class="d-flex flex-column gap-2">
                    <?php foreach ($teams as $team): ?>
                        <div class="d-flex align-items-center gap-2">
                            <?php if ($team->getColor()): ?>
                                <span style="width:10px;height:10px;border-radius:50%;background:<?= $this->escapeHtml($team->getColor()) ?>;flex-shrink:0"></span>
                            <?php endif; ?>
                            <span class="flex-grow-1"><?= $this->escapeHtml($team->getName()) ?></span>
                            <span class="text-muted" style="font-size:.8rem"><?= $team->getMembers()->count() ?> membre<?= $team->getMembers()->count() !== 1 ? 's' : '' ?></span>
                        </div>
                    <?php endforeach; ?>
                </div>
            <?php else: ?>
                <p class="text-muted mb-0" style="font-size:.875rem">Aucune équipe.</p>
            <?php endif; ?>
        </div>
    </div>

</div><!-- /.dashboard-grid -->

<?php endif; ?>
