<?php
/**
 * @var \App\View\AppView $this
 * @var \App\Model\Entity\PaquetesPago $paquetePago
 */
?>

<div class="container-fluid mt-4">
    <div class="row mb-4">
        <div class="col-md-8">
            <h1><?= h($paquetePago->nombre) ?></h1>
            <p class="text-muted"><?= h($paquetePago->descripcion) ?></p>
        </div>
        <div class="col-md-4 text-end">
            <div class="btn-group">
                <?= $this->Html->link(
                    __('Editar'),
                    ['action' => 'edit', $paquetePago->id],
                    ['class' => 'btn btn-warning']
                ) ?>
                <?= $this->Form->postLink(
                    __('Eliminar'),
                    ['action' => 'delete', $paquetePago->id],
                    ['class' => 'btn btn-danger', 'confirm' => __('¿Estás seguro?')]
                ) ?>
            </div>
        </div>
    </div>

    <!-- Información Principal -->
    <div class="row mb-4">
        <div class="col-md-6">
            <div class="card mb-4">
                <div class="card-header bg-light">
                    <h5 class="card-title mb-0"><?= __('Información del Paquete') ?></h5>
                </div>
                <div class="card-body">
                    <dl class="row">
                        <dt class="col-sm-4"><?= __('Cliente') ?></dt>
                        <dd class="col-sm-8">
                            <?php if (!empty($paquetePago->clientes_facturacion)): ?>
                                <?= h($paquetePago->clientes_facturacion->nombre_razon_social) ?>
                            <?php else: ?>
                                <span class="text-muted">-</span>
                            <?php endif; ?>
                        </dd>

                        <dt class="col-sm-4"><?= __('Precio Total') ?></dt>
                        <dd class="col-sm-8">
                            <strong><?= $this->Number->currency($paquetePago->precio_total) ?></strong>
                            <?= $paquetePago->tipo_pago === 'recurrente' ? ' / ' . __('mes') : '' ?>
                        </dd>

                        <dt class="col-sm-4"><?= __('Forma de Pago') ?></dt>
                        <dd class="col-sm-8">
                            <?php
                                $tipoPagoClase = match($paquetePago->tipo_pago) {
                                    'contado' => 'bg-success',
                                    'partes' => 'bg-info',
                                    'recurrente' => 'bg-primary',
                                    default => 'bg-secondary'
                                };
                                $tipoPagoTexto = match($paquetePago->tipo_pago) {
                                    'contado' => 'Contado',
                                    'partes' => 'En Partes',
                                    'recurrente' => 'Recurrente Mensual',
                                    default => 'Desconocido'
                                };
                            ?>
                            <span class="badge <?= $tipoPagoClase ?>">
                                <?= __($tipoPagoTexto) ?>
                            </span>
                            <?php if ($paquetePago->tipo_pago === 'recurrente' && !empty($paquetePago->fecha_inicio_cobro)): ?>
                                <span class="text-muted">(<?= __('día') ?> <?= $paquetePago->fecha_inicio_cobro->format('j') ?> <?= __('de cada mes') ?>)</span>
                            <?php endif; ?>
                        </dd>

                        <?php if ($paquetePago->tipo_pago === 'recurrente' && !empty($paquetePago->fecha_fin)): ?>
                        <dt class="col-sm-4"><?= __('Fecha de Fin') ?></dt>
                        <dd class="col-sm-8"><?= $paquetePago->fecha_fin->format('d-m-Y') ?></dd>
                        <?php endif; ?>

                        <dt class="col-sm-4"><?= __('Estado') ?></dt>
                        <dd class="col-sm-8">
                            <?php
                                $estadoClase = match($paquetePago->estado) {
                                    'pendiente' => 'bg-warning',
                                    'pagado_parcial' => 'bg-info',
                                    'pagado_completo' => 'bg-success',
                                    'cancelado' => 'bg-danger',
                                    default => 'bg-secondary'
                                };
                                $estadoTexto = match($paquetePago->estado) {
                                    'pendiente' => 'Pendiente',
                                    'pagado_parcial' => 'Parcial',
                                    'pagado_completo' => 'Pagado',
                                    'cancelado' => 'Cancelado',
                                    default => 'Desconocido'
                                };
                            ?>
                            <span class="badge <?= $estadoClase ?>">
                                <?= __($estadoTexto) ?>
                            </span>
                        </dd>
                    </dl>
                </div>
            </div>
        </div>

        <!-- Información de Pago -->
        <div class="col-md-6">
            <div class="card mb-4">
                <div class="card-header bg-light">
                    <h5 class="card-title mb-0"><?= __('Información de Pago') ?></h5>
                </div>
                <div class="card-body">
                    <?php if ($paquetePago->tipo_pago === 'contado'): ?>
                        <div class="alert alert-info mb-0">
                            <p class="mb-2">
                                <strong><?= __('Pago al Contado') ?></strong>
                            </p>
                            <p class="mb-2">
                                <strong>Monto:</strong> <?= $this->Number->currency($paquetePago->precio_total) ?>
                            </p>
                            <p class="mb-0">
                                <strong>Fecha Recordatorio:</strong>
                                <?= $paquetePago->fecha_recordatorio?->format('d-m-Y') ?>
                            </p>
                        </div>
                    <?php elseif ($paquetePago->tipo_pago === 'recurrente'): ?>
                        <?php
                            $proximaCuotaPendiente = collection($paquetePago->paquetes_pagos_cuotas ?? [])
                                ->filter(fn($c) => $c->estado === 'pendiente')
                                ->first();
                        ?>
                        <div class="alert alert-primary mb-0">
                            <p class="mb-2">
                                <strong><?= __('Membresía Recurrente Mensual') ?></strong>
                            </p>
                            <?php if ($proximaCuotaPendiente): ?>
                                <p class="mb-2">
                                    <?= __('Próximo cobro:') ?>
                                    <strong><?= $proximaCuotaPendiente->fecha_recordatorio?->format('d \d\e F, Y') ?> — <?= $this->Number->currency($proximaCuotaPendiente->monto) ?></strong>
                                </p>
                            <?php endif; ?>
                            <p class="mb-0 small">
                                <?= __('La próxima cuota se genera automáticamente al registrar el pago de la actual.') ?>
                            </p>
                        </div>
                    <?php else: ?>
                        <p class="text-muted">
                            <?= __('Este paquete tiene ') ?><strong><?= count($paquetePago->paquetes_pagos_cuotas) ?></strong> <?= __('cuota(s).') ?>
                        </p>
                    <?php endif; ?>
                </div>
            </div>
        </div>
    </div>

    <!-- Tabla de Cuotas (pago en partes o recurrente) -->
    <?php if (in_array($paquetePago->tipo_pago, ['partes', 'recurrente']) && !empty($paquetePago->paquetes_pagos_cuotas)): ?>
        <div class="card">
            <div class="card-header bg-light">
                <h5 class="card-title mb-0"><?= $paquetePago->tipo_pago === 'recurrente' ? __('Cuotas Mensuales') : __('Detalle de Cuotas') ?></h5>
            </div>
            <div class="table-responsive">
                <table class="table table-striped mb-0">
                    <thead class="table-light">
                        <tr>
                            <th><?= __('Cuota') ?></th>
                            <th><?= __('Monto') ?></th>
                            <th><?= __('Fecha Recordatorio') ?></th>
                            <th><?= __('Estado') ?></th>
                            <th><?= __('Fecha Pago') ?></th>
                            <th><?= __('Acciones') ?></th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php foreach ($paquetePago->paquetes_pagos_cuotas as $cuota): ?>
                            <tr>
                                <td><?= h($cuota->titulo_referencial) ?></td>
                                <td><?= $this->Number->currency($cuota->monto) ?></td>
                                <td><?= $cuota->fecha_recordatorio?->format('d-m-Y H:i') ?></td>
                                <td>
                                    <?php
                                        $claseBadge = $cuota->estado === 'pagado' ? 'bg-success' : 'bg-warning';
                                        $textoEstado = $cuota->estado === 'pagado' ? 'Pagado' : 'Pendiente';
                                    ?>
                                    <span class="badge <?= $claseBadge ?>">
                                        <?= __($textoEstado) ?>
                                    </span>
                                </td>
                                <td><?= $cuota->fecha_pago?->format('d-m-Y H:i') ?? '---' ?></td>
                                <td>
                                    <?php if ($cuota->estado === 'pendiente'): ?>
    <?= $this->Form->postLink(
        '<i class="bi bi-check-circle"></i> Pagar',
        ['action' => 'registrarPago', $cuota->id],
        [
            'class' => 'btn btn-sm btn-success',
            'escape' => false,
            'confirm' => '¿Confirmar pago?'
        ]
    ) ?>
<?php else: ?>
    <span class="badge bg-success">Pagado</span>
<?php endif; ?>
                                </td>
                            </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
            </div>
        </div>
</div>
<?php endif; ?>