@extends('layouts.dashboard')

@section('title', __('Pagos y ventas'))

@section('content')
    @include('dashboard.partials.bootstrap-table-assets')

    <div class="container-fluid px-0">
        <div class="d-flex align-items-center justify-content-between flex-wrap gap-3 mb-4">
            <div>
                <h1 class="h3 mb-1 text-dark font-weight-bold">{{ __('Ingresos y ventas') }}</h1>
                <p class="text-muted mb-0 small">{{ __('Historial detallado de órdenes y transacciones procesadas.') }}</p>
            </div>
            <span class="badge badge-light text-muted border">{{ __('Tiempo real') }}</span>
        </div>

        <div class="card shadow-sm border-0">
            <div class="card-body p-0">
                @if ($orders->isEmpty())
                    <div class="p-5 text-center text-muted">
                        <i class="bi bi-receipt mb-3 opacity-25" style="font-size: 2rem" aria-hidden="true"></i>
                        <p>{{ __('No hay órdenes aún.') }}</p>
                    </div>
                @else
                    <div class="table-responsive">
                        <table
                            class="table table-hover align-middle mb-0"
                            data-toggle="table"
                            data-locale="es-ES"
                            data-search="true"
                            data-show-columns="true"
                            data-pagination="true"
                            data-page-size="10"
                            data-page-list='[10, 20, 50, 100, "all"]'
                            data-pagination-pre-text="{{ __('Anterior') }}"
                            data-pagination-next-text="{{ __('Siguiente') }}"
                        >
                            <thead class="table-light">
                                <tr>
                                    <th data-field="created_at" data-sortable="true" class="ps-4">{{ __('Fecha') }}</th>
                                    <th data-field="id" data-sortable="true">{{ __('ID') }}</th>
                                    <th data-field="status" data-sortable="true">{{ __('Estado') }}</th>
                                    <th data-field="event" data-sortable="true">{{ __('Evento') }}</th>
                                    <th data-field="base" data-sortable="true">{{ __('Base') }}</th>
                                    <th data-field="fee" data-sortable="true">{{ __('Comisión') }}</th>
                                    <th data-field="total" data-sortable="true">{{ __('Total') }}</th>
                                    <th data-field="gateway" data-sortable="true">{{ __('Canal') }}</th>
                                    <th data-field="actions" data-sortable="false" data-switchable="false" class="pe-4 text-center">{{ __('Acciones') }}</th>
                                </tr>
                            </thead>
                            <tbody>
                                @foreach ($orders as $order)
                                    @php
                                        $eventTitle = $order->attendees->first()?->ticketType?->event?->title;
                                        $tx = $order->transactions->sortByDesc('id')->first();
                                        $statusVal = $order->status->value;
                                    @endphp
                                    <tr>
                                        <td class="ps-4 text-nowrap small text-muted">
                                            {{ $order->created_at->timezone(config('app.timezone'))->format('d/m/y H:i:s') }}
                                        </td>
                                        <td class="small font-weight-bold text-muted">
                                            #{{ str_pad((string) $order->id, 5, '0', STR_PAD_LEFT) }}
                                        </td>
                                        <td>
                                            @if ($statusVal === 'completed' || $statusVal === 'paid')
                                                <span class="badge badge-success">
                                                    {{ __('Completada') }}
                                                </span>
                                            @elseif ($statusVal === 'pending')
                                                <span class="badge badge-warning text-dark">
                                                    {{ __('Pendiente') }}
                                                </span>
                                            @else
                                                <span class="badge badge-secondary">
                                                    {{ strtoupper($statusVal) }}
                                                </span>
                                            @endif
                                        </td>
                                        <td>
                                            <span class="badge badge-light text-dark border text-truncate d-inline-block" style="max-width: 14rem" title="{{ $eventTitle }}">
                                                {{ $eventTitle ?: '—' }}
                                            </span>
                                        </td>
                                        <td class="small font-weight-bold">${{ number_format((float) $order->net_organizer_amount, 2) }}</td>
                                        <td class="small text-muted">${{ number_format((float) $order->platform_fee, 2) }}</td>
                                        <td class="small font-weight-bold">${{ number_format((float) $order->total_amount, 2) }}</td>
                                        <td>
                                            @if ($tx?->gateway?->value === 'stripe')
                                                <span class="badge badge-light text-dark border">Stripe</span>
                                            @elseif ($tx?->gateway?->value === 'paypal')
                                                <span class="badge badge-light text-dark border">PayPal</span>
                                            @else
                                                —
                                            @endif
                                        </td>
                                        <td class="pe-4 text-center text-nowrap">
                                            <button
                                                type="button"
                                                class="btn btn-sm btn-outline-primary"
                                                onclick="rtPaymentsOpenDetail('{{ $order->uuid }}')"
                                                title="{{ __('Ver orden, pagos, asistentes y códigos QR') }}"
                                            >
                                                <i class="bi bi-eye mr-1" aria-hidden="true"></i>{{ __('Ver') }}
                                            </button>
                                        </td>
                                    </tr>
                                @endforeach
                            </tbody>
                        </table>
                    </div>
                @endif
            </div>
        </div>
    </div>
@endsection

@push('scripts')
    @php
        $rtPaymentsRegistrationLabels = [
            'genero' => __('Género'),
            'nacionalidad' => __('Nacionalidad'),
            'club-o-equipo' => __('Club o equipo'),
            'talla-de-camisa' => __('Talla de camisa'),
            'fecha-de-nacimiento' => __('Fecha de nacimiento'),
            'categoria-de-competencia' => __('Categoría'),
            'contacto-de-emergencia-nombre-y-telefono' => __('Contacto de emergencia'),
            'mejor-tiempo-previo-en-5k-opcional-formato-hhmmss' => __('Mejor tiempo previo (5K)'),
            'acepto-reglamento-descargo-de-responsabilidad-y-reglas-de-la' => __('Aceptación de reglamento'),
        ];
    @endphp
    <script>
        window.__rtPaymentsBase = @json(url('/dashboard/payments'));
        window.__rtPaymentsI18n = {
            loadingTitle: @json(__('Cargando…')),
            detailTitle: @json(__('Detalle de la compra')),
            close: @json(__('Cerrar')),
            resend: @json(__('Reenviar entradas por correo')),
            resendConfirm: @json(__('¿Enviar de nuevo el correo con los códigos QR?')),
            resendYes: @json(__('Enviar')),
            cancel: @json(__('Cancelar')),
            sending: @json(__('Enviando…')),
            buyer: @json(__('Comprador')),
            email: @json(__('Correo electrónico')),
            phone: @json(__('Teléfono')),
            organization: @json(__('Organización')),
            guestBuyer: @json(__('Compra como invitado: no hay cuenta de usuario asociada.')),
            primaryContact: @json(__('Contacto principal')),
            order: @json(__('Resumen de la orden')),
            status: @json(__('Estado')),
            currency: @json(__('Moneda')),
            total: @json(__('Total pagado')),
            platformFee: @json(__('Comisión de la plataforma')),
            netOrganizer: @json(__('Neto para el organizador')),
            event: @json(__('Evento')),
            payments: @json(__('Pagos')),
            noTx: @json(__('No hay pagos registrados para esta orden.')),
            attendeesQr: @json(__('Entradas y códigos QR')),
            qrHintUser: @json(__('Presenta este código en el acceso al evento. Es el mismo que llegó al correo del comprador.')),
            ticket: @json(__('Tipo de entrada')),
            securityCode: @json(__('Código de la entrada')),
            qrFail: @json(__('No se pudo generar el código QR.')),
            attendee: @json(__('Asistente')),
            purchaseDate: @json(__('Realizada el')),
            paidAt: @json(__('Pago confirmado el')),
            reference: @json(__('Referencia')),
            amount: @json(__('Importe')),
            note: @json(__('Observación')),
            payerSummary: @json(__('Datos del pago')),
            payerName: @json(__('Nombre del pagador')),
            payerEmail: @json(__('Correo del pagador')),
            captureId: @json(__('Identificador del cobro')),
            capturedAmount: @json(__('Importe cobrado')),
            captureStatus: @json(__('Estado del cobro')),
            ppOrderStatus: @json(__('Estado en la pasarela')),
            stripeIntent: @json(__('Identificador del pago')),
            stripeStatus: @json(__('Estado del pago')),
            registrationData: @json(__('Datos del registro')),
            stCompleted: @json(__('Completada')),
            stPending: @json(__('Pendiente')),
            stRefunded: @json(__('Reembolsada')),
            txSucceeded: @json(__('Exitoso')),
            txPending: @json(__('Pendiente')),
            txFailed: @json(__('Fallido')),
            gwStripe: @json(__('Stripe')),
            gwPaypal: @json(__('PayPal')),
            ppCompleted: @json(__('Completado')),
            ppApproved: @json(__('Aprobado')),
            ppPending: @json(__('Pendiente')),
            ppDeclined: @json(__('Rechazado')),
            ppFailed: @json(__('Fallido')),
            yes: @json(__('Sí')),
            no: @json(__('No')),
            registrationLabels: @json($rtPaymentsRegistrationLabels),
        };
    </script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    <script src="{{ asset('js/dashboard-payments.js') }}?v=2"></script>
@endpush
