@extends('layouts/layoutMaster') @section('title', 'Anuncios - Moderacion') @section('vendor-style') @vite([ 'resources/assets/vendor/libs/datatables-bs5/datatables.bootstrap5.scss', 'resources/assets/vendor/libs/datatables-responsive-bs5/responsive.bootstrap5.scss', 'resources/assets/vendor/libs/datatables-buttons-bs5/buttons.bootstrap5.scss', ]) @endsection @section('page-style') @endsection @section('content') @php $statusMap = [ 'draft' => ['label' => 'Borrador', 'class' => 'secondary', 'icon' => 'tabler-edit-circle'], 'pending' => ['label' => 'Pendiente', 'class' => 'warning', 'icon' => 'tabler-clock-hour-4'], 'approved' => ['label' => 'Aprobado', 'class' => 'success', 'icon' => 'tabler-circle-check'], 'rejected' => ['label' => 'Rechazado', 'class' => 'danger', 'icon' => 'tabler-alert-circle'], ]; $operationalMap = [ 'draft' => ['label' => 'Borrador', 'class' => 'secondary'], 'awaiting_plan' => ['label' => 'Sin plan', 'class' => 'warning'], 'awaiting_payment' => ['label' => 'Esperando pago', 'class' => 'warning'], 'active' => ['label' => 'Activo', 'class' => 'success'], 'paused' => ['label' => 'Pausado', 'class' => 'secondary'], ]; $paymentMap = [ 'none' => ['label' => 'Sin pago', 'class' => 'secondary'], 'pending' => ['label' => 'Pago en revision', 'class' => 'warning'], 'approved' => ['label' => 'Pago aprobado', 'class' => 'success'], 'rejected' => ['label' => 'Pago rechazado', 'class' => 'danger'], ]; @endphp @if (session('status'))
{{ session('status') }}
@endif @if ($errors->any())
@endif

{{ number_format($listingMetrics['pending']) }}

Pendientes de revision


{{ number_format($listingMetrics['approved']) }}

Aprobados


{{ number_format($listingMetrics['rejected']) }}

Rechazados

{{ number_format($listingMetrics['live']) }}

Publicados

Moderacion de anuncios

Supervisa revision editorial, estado operativo y calidad de contenido de cada anuncio.

Total {{ number_format($listingMetrics['total']) }} Pagos pendientes {{ number_format($listingMetrics['payment_pending']) }} Pagina {{ $listings->currentPage() }} / {{ $listings->lastPage() }}
Limpiar
@forelse ($listings as $listing) @php $reviewMeta = $statusMap[$listing->review_status] ?? ['label' => $listing->reviewStatusLabel(), 'class' => 'secondary', 'icon' => 'tabler-circle']; $operationalMeta = $operationalMap[$listing->status] ?? ['label' => \Illuminate\Support\Str::headline($listing->status ?: 'draft'), 'class' => 'secondary']; $paymentMeta = $paymentMap[$listing->payment_status] ?? ['label' => $listing->paymentStatusLabel(), 'class' => 'secondary']; $providerUser = $listing->mariachiProfile?->user; $providerName = $listing->mariachiProfile?->business_name ?: $providerUser?->display_name ?: 'Mariachi sin nombre'; $thumb = $listing->photos->first(); $initials = collect(preg_split('/\s+/', trim($listing->title ?: $providerName))) ->filter() ->take(2) ->map(fn (string $part): string => strtoupper(mb_substr($part, 0, 1))) ->implode(''); @endphp @empty @endforelse
# Anuncio Fechas Mariachi Senales Revision Publicacion Acciones
#{{ $listing->id }}
@if ($thumb?->path) Miniatura del anuncio @else {{ $initials ?: 'AN' }} @endif
{{ $listing->title ?: 'Anuncio sin titulo' }} {{ $listing->city_name ?: 'Sin ciudad' }} ยท {{ $listing->slug ?: 'slug pendiente' }} {{ $listing->base_price ? '$'.number_format((float) $listing->base_price, 0, ',', '.') : 'Precio pendiente' }}
{{ optional($listing->submitted_for_review_at ?: $listing->updated_at)->format('d/m/Y H:i') ?: 'Sin fecha' }} Revision / actividad
{{ optional($listing->created_at)->format('d/m/Y H:i') ?: 'Sin fecha' }} Creado
{{ collect(preg_split('/\s+/', trim($providerName)))->filter()->take(2)->map(fn (string $part): string => strtoupper(mb_substr($part, 0, 1)))->implode('') ?: 'MR' }}
{{ $providerName }}
{{ $providerUser?->email ?: 'Sin email' }}
{{ (int) $listing->photos_count }} Fotos
{{ (int) $listing->videos_count }} Videos
{{ (int) $listing->reviews_count }} Opiniones
{{ (int) $listing->quote_conversations_count }} Leads
{{ $reviewMeta['label'] }} @if ($listing->rejection_reason)
{{ $listing->rejection_reason }}
@else
{{ $listing->reviewedBy?->display_name ? 'Por '.$listing->reviewedBy->display_name : 'Sin observaciones' }}
@endif
{{ $operationalMeta['label'] }} {{ $paymentMeta['label'] }} {{ $listing->isApprovedForMarketplace() ? 'Visible' : 'No visible' }} Plan {{ \Illuminate\Support\Str::upper($listing->selected_plan_code ?: 'sin plan') }}
No hay anuncios que coincidan con este filtro.
@if ($listings->hasPages()) @endif
@endsection