@extends('layouts.app')

@section('title', 'Gestión de Pagos')

@section('breadcrumbs')
    <li class="breadcrumb-item active">Pagos</li>
@endsection

@section('content')
<div class="d-flex justify-content-between align-items-center mb-4">
    <h2>
        <i class="fas fa-credit-card"></i> Gestión de Pagos
    </h2>
    <div class="btn-group">
        <button type="button" class="btn btn-primary dropdown-toggle" data-bs-toggle="dropdown">
            <i class="fas fa-download"></i> Exportar
        </button>
        <ul class="dropdown-menu">
            <li><a class="dropdown-item" href="#" onclick="exportPayments('excel')">
                <i class="fas fa-file-excel"></i> Excel
            </a></li>
            <li><a class="dropdown-item" href="#" onclick="exportPayments('pdf')">
                <i class="fas fa-file-pdf"></i> PDF
            </a></li>
        </ul>
    </div>
</div>

<!-- Estadísticas -->
<div class="row mb-4">
    <div class="col-lg-3 col-md-6">
        <div class="stats-card mini">
            <div class="d-flex justify-content-between align-items-center">
                <div>
                    <h4>{{ $stats['total'] ?? 0 }}</h4>
                    <small>Total Pagos</small>
                </div>
                <i class="fas fa-credit-card fs-3"></i>
            </div>
        </div>
    </div>
    <div class="col-lg-3 col-md-6">
        <div class="stats-card mini success">
            <div class="d-flex justify-content-between align-items-center">
                <div>
                    <h4>{{ $stats['successful'] ?? 0 }}</h4>
                    <small>Exitosos</small>
                </div>
                <i class="fas fa-check-circle fs-3"></i>
            </div>
        </div>
    </div>
    <div class="col-lg-3 col-md-6">
        <div class="stats-card mini warning">
            <div class="d-flex justify-content-between align-items-center">
                <div>
                    <h4>{{ $stats['pending'] ?? 0 }}</h4>
                    <small>Pendientes</small>
                </div>
                <i class="fas fa-clock fs-3"></i>
            </div>
        </div>
    </div>
    <div class="col-lg-3 col-md-6">
        <div class="stats-card mini info">
            <div class="d-flex justify-content-between align-items-center">
                <div>
                    <h4>${{ number_format($stats['total_amount'] ?? 0, 0, ',', '.') }}</h4>
                    <small>Total Recaudado</small>
                </div>
                <i class="fas fa-dollar-sign fs-3"></i>
            </div>
        </div>
    </div>
</div>

<!-- Filtros -->
<div class="card mb-4">
    <div class="card-body">
        <form method="GET">
            <div class="row">
                <div class="col-md-3">
                    <label class="form-label">Estado</label>
                    <select class="form-select" name="status">
                        <option value="">Todos</option>
                        <option value="successful" {{ request('status') === 'successful' ? 'selected' : '' }}>Exitoso</option>
                        <option value="pending" {{ request('status') === 'pending' ? 'selected' : '' }}>Pendiente</option>
                        <option value="failed" {{ request('status') === 'failed' ? 'selected' : '' }}>Fallido</option>
                    </select>
                </div>
                <div class="col-md-3">
                    <label class="form-label">Desde</label>
                    <input type="date" class="form-control" name="date_from" value="{{ request('date_from') }}">
                </div>
                <div class="col-md-3">
                    <label class="form-label">Hasta</label>
                    <input type="date" class="form-control" name="date_to" value="{{ request('date_to') }}">
                </div>
                <div class="col-md-3 d-flex align-items-end">
                    <div class="btn-group w-100">
                        <button type="submit" class="btn btn-primary">
                            <i class="fas fa-search"></i> Filtrar
                        </button>
                        <a href="{{ route('payments.index') }}" class="btn btn-outline-secondary">
                            <i class="fas fa-times"></i>
                        </a>
                    </div>
                </div>
            </div>
        </form>
    </div>
</div>

<!-- Tabla de Pagos -->
<div class="card">
    <div class="card-header">
        <h5 class="mb-0">Lista de Pagos</h5>
    </div>
    <div class="card-body p-0">
        @if(isset($payments) && count($payments) > 0)
        <div class="table-responsive">
            <table class="table table-hover mb-0">
                <thead class="table-light">
                    <tr>
                        <th>Fecha</th>
                        <th>Empresa</th>
                        <th>Plan</th>
                        <th>Monto</th>
                        <th>Método</th>
                        <th>Estado</th>
                        <th class="text-end">Acciones</th>
                    </tr>
                </thead>
                <tbody>
                    @foreach($payments as $payment)
                    @php
                        $payment = (object) $payment; // Convertir array a objeto para fácil acceso
                    @endphp
                    <tr>
                        <td>
                            {{ date('d/m/Y', strtotime($payment->created_at ?? now())) }}
                            <br>
                            <small class="text-muted">{{ date('H:i', strtotime($payment->created_at ?? now())) }}</small>
                        </td>
                        <td>
                            <div class="d-flex align-items-center">
                                <div class="company-avatar small me-2">
                                    {{ substr($payment->company_name ?? 'N/A', 0, 2) }}
                                </div>
                                <div>
                                    <strong>{{ $payment->company_name ?? 'N/A' }}</strong>
                                    <br>
                                    <small class="text-muted">ID: {{ $payment->id ?? 'N/A' }}</small>
                                </div>
                            </div>
                        </td>
                        <td>
                            <span class="badge bg-info">{{ $payment->plan_name ?? 'N/A' }}</span>
                        </td>
                        <td>
                            <strong>${{ number_format($payment->amount ?? 0, 0, ',', '.') }}</strong>
                            <br>
                            <small class="text-muted">{{ $payment->currency ?? 'ARS' }}</small>
                        </td>
                        <td>
                            @if(isset($payment->payment_method))
                                @switch($payment->payment_method)
                                    @case('mercadopago')
                                        <span class="badge bg-primary">MercadoPago</span>
                                        @break
                                    @case('transfer')
                                        <span class="badge bg-secondary">Transferencia</span>
                                        @break
                                    @default
                                        <span class="badge bg-light text-dark">{{ ucfirst($payment->payment_method) }}</span>
                                @endswitch
                            @else
                                <span class="text-muted">N/A</span>
                            @endif
                        </td>
                        <td>
                            @php
                                $statusClass = 'secondary';
                                $statusText = 'Desconocido';
                                
                                if (isset($payment->status)) {
                                    switch($payment->status) {
                                        case 'confirmed':
                                            $statusClass = 'success';
                                            $statusText = 'Confirmado';
                                            break;
                                        case 'pending':
                                            $statusClass = 'warning';
                                            $statusText = 'Pendiente';
                                            break;
                                        case 'failed':
                                            $statusClass = 'danger';
                                            $statusText = 'Fallido';
                                            break;
                                        case 'cancelled':
                                            $statusClass = 'secondary';
                                            $statusText = 'Cancelado';
                                            break;
                                    }
                                }
                            @endphp
                            <span class="badge bg-{{ $statusClass }}">{{ $statusText }}</span>
                            @if(isset($payment->paid_at) && $payment->paid_at)
                                <br><small class="text-muted">{{ date('d/m/Y H:i', strtotime($payment->paid_at)) }}</small>
                            @endif
                        </td>
                        <td class="text-end">
                            <div class="btn-group btn-group-sm">
                                <a href="{{ route('payments.show', $payment->id) }}" class="btn btn-outline-primary" title="Ver detalles">
                                    <i class="fas fa-eye"></i>
                                </a>
                                @if(isset($payment->status) && $payment->status === 'pending')
                                <button type="button" class="btn btn-outline-success" onclick="confirmPayment('{{ $payment->id }}')" title="Confirmar pago">
                                    <i class="fas fa-check"></i>
                                </button>
                                @endif
                                @if(isset($payment->transaction_id) && $payment->transaction_id)
                                <button type="button" class="btn btn-outline-info" onclick="viewTransaction('{{ $payment->transaction_id }}')" title="Ver transacción">
                                    <i class="fas fa-external-link-alt"></i>
                                </button>
                                @endif
                                <div class="btn-group btn-group-sm">
                                    <button type="button" class="btn btn-outline-secondary dropdown-toggle dropdown-toggle-split" 
                                            data-bs-toggle="dropdown">
                                    </button>
                                    <ul class="dropdown-menu dropdown-menu-end">
                                        <li><a class="dropdown-item" href="#" onclick="downloadReceipt('{{ $payment->id }}')">
                                            <i class="fas fa-receipt"></i> Descargar Recibo
                                        </a></li>
                                        <li><a class="dropdown-item" href="#" onclick="sendNotification('{{ $payment->id }}')">
                                            <i class="fas fa-envelope"></i> Enviar Notificación
                                        </a></li>
                                        @if(isset($payment->status) && in_array($payment->status, ['pending', 'failed']))
                                        <li><hr class="dropdown-divider"></li>
                                        <li><a class="dropdown-item text-danger" href="#" onclick="cancelPayment('{{ $payment->id }}')">
                                            <i class="fas fa-times"></i> Cancelar Pago
                                        </a></li>
                                        @endif
                                    </ul>
                                </div>
                            </div>
                        </td>
                    </tr>
                    @endforeach
                </tbody>
            </table>
        </div>
        
        @if(isset($pagination) && isset($pagination['total_pages']) && $pagination['total_pages'] > 1)
        <div class="card-footer">
            <nav aria-label="Page navigation">
                <ul class="pagination justify-content-center mb-0">
                    @if($pagination['current_page'] > 1)
                        <li class="page-item">
                            <a class="page-link" href="{{ request()->fullUrlWithQuery(['page' => $pagination['current_page'] - 1]) }}">
                                <i class="fas fa-chevron-left"></i> Anterior
                            </a>
                        </li>
                    @endif
                    
                    @for($i = 1; $i <= $pagination['total_pages']; $i++)
                        <li class="page-item {{ $i == $pagination['current_page'] ? 'active' : '' }}">
                            <a class="page-link" href="{{ request()->fullUrlWithQuery(['page' => $i]) }}">{{ $i }}</a>
                        </li>
                    @endfor
                    
                    @if($pagination['current_page'] < $pagination['total_pages'])
                        <li class="page-item">
                            <a class="page-link" href="{{ request()->fullUrlWithQuery(['page' => $pagination['current_page'] + 1]) }}">
                                Siguiente <i class="fas fa-chevron-right"></i>
                            </a>
                        </li>
                    @endif
                </ul>
            </nav>
            <div class="text-center mt-2">
                <small class="text-muted">
                    Página {{ $pagination['current_page'] }} de {{ $pagination['total_pages'] }} 
                    ({{ $pagination['total_items'] }} registros total)
                </small>
            </div>
        </div>
        @endif
        
        @else
        <div class="text-center py-5">
            <i class="fas fa-credit-card fa-3x text-muted mb-3"></i>
            <h5 class="text-muted">No se encontraron pagos</h5>
            <p class="text-muted">No hay pagos que coincidan con los filtros aplicados.</p>
        </div>
        @endif
    </div>
</div>

@endsection

@push('styles')
<style>
    .company-avatar.small {
        width: 30px;
        height: 30px;
        border-radius: 50%;
        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
        display: flex;
        align-items: center;
        justify-content: center;
        color: white;
        font-weight: bold;
        font-size: 12px;
    }
    
    .stats-card.mini {
        padding: 15px;
        margin-bottom: 0;
    }
    
    .stats-card.mini h4 {
        font-size: 1.5rem;
        margin-bottom: 0;
    }
</style>
@endpush

@push('scripts')
<script>
    function viewPayment(paymentId) {
        window.location.href = `/payments/${paymentId}`;
    }
    
    function confirmPayment(paymentId) {
        if (confirm('¿Confirmar este pago como exitoso?')) {
            // En producción sería una llamada AJAX
            alert('Funcionalidad de confirmación en desarrollo para pago: ' + paymentId);
        }
    }
    
    function downloadReceipt(paymentId) {
        alert('Funcionalidad de descarga de recibo en desarrollo para pago: ' + paymentId);
    }
    
    function viewTransaction(transactionId) {
        alert('Ver transacción externa: ' + transactionId);
    }
    
    function sendNotification(paymentId) {
        if (confirm('¿Enviar notificación al cliente sobre este pago?')) {
            alert('Funcionalidad de notificación en desarrollo');
        }
    }
    
    function cancelPayment(paymentId) {
        if (confirm('¿Estás seguro de que deseas cancelar este pago?\n\nEsta acción no se puede deshacer.')) {
            alert('Funcionalidad de cancelación en desarrollo');
        }
    }
    
    function exportPayments(format) {
        const params = new URLSearchParams(window.location.search);
        const exportUrl = `/payments/export?format=${format}&${params.toString()}`;
        
        // En producción sería una descarga real
        alert(`Exportar pagos en formato ${format}. URL: ${exportUrl}`);
    }
    
    // Actualizar automáticamente cada 30 segundos
    setInterval(function() {
        // En producción actualizaría solo las estadísticas
        console.log('Actualizando estadísticas de pagos...');
    }, 30000);
</script>
@endpush