@extends('layouts.app')
@section('title','Centro de operaciones — '.config('app.name'))
@section('content')
@php
$actionLabels = [
'settings.updated' => 'Configuración actualizada', 'course.moderated' => 'Curso moderado',
'course.created' => 'Curso creado', 'course.updated' => 'Curso actualizado',
'user.updated' => 'Usuario actualizado', 'enrollment.created' => 'Inscripción creada',
'enrollment.updated' => 'Inscripción actualizada', 'order.refunded' => 'Orden reembolsada',
'certificate.revoked' => 'Certificado revocado',
];
$statusLabels = ['draft'=>'Borradores','review'=>'En revisión','published'=>'Publicados','rejected'=>'Rechazados','archived'=>'Archivados'];
$courseTotal = max(1, (int) $courseStatuses->sum());
@endphp
Usuarios{{ number_format($stats['users']) }}{{ number_format($stats['active_users']) }} activos
Cursos{{ number_format($stats['courses']) }}{{ number_format($stats['published_courses']) }} publicados
Inscripciones activas{{ number_format($stats['active_enrollments']) }}{{ number_format($stats['students']) }} estudiantes únicos
Ingresos aprobados${{ number_format($stats['revenue'],0) }}${{ number_format($stats['month_revenue'],0) }} este mes
Prioridades
Requiere atención
{{ array_sum($attention) }} elementos pendientes
Catálogo
Estado de cursos
@can('courses.moderate')Ver cursos@endcan
@foreach($statusLabels as $status => $label)
@php($total = (int) ($courseStatuses[$status] ?? 0))
{{ $label }}{{ $total }}
@endforeach
{{ number_format($stats['certificates']) }}certificados vigentes@can('certificates.manage')
Administrar@endcan
@forelse($pendingCourses as $course)
{{ $course->title }}{{ $course->instructor->name }} · enviado {{ $course->updated_at->diffForHumans() }}
@can('courses.moderate')Abrir@endcan
@empty
✓Todo revisadoNo hay cursos pendientes de aprobación.
@endforelse
@forelse($pendingOrders as $order)
{{ $order->user->name }}{{ Str::limit($order->number,18) }} · {{ $order->created_at->diffForHumans() }}
${{ number_format($order->total,2) }}
@empty
✓Pagos al díaNo hay comprobantes por validar.
@endforelse
@forelse($topCourses as $course)
{{ str_pad($loop->iteration,2,'0',STR_PAD_LEFT) }}{{ $course->title }}{{ $course->instructor->name }}
{{ $course->enrollments_count }}@empty
Sin información de cursos.
@endforelse
@forelse($recentUsers as $user)
{{ $user->name }}{{ Str::headline($user->roles->first()?->name ?? 'Sin rol') }} · {{ $user->created_at->diffForHumans() }}
@empty
Sin usuarios recientes.
@endforelse
@forelse($recentActivity as $activity)
{{ $actionLabels[$activity->action] ?? Str::headline(str_replace('.',' ',$activity->action)) }}{{ $activity->user?->name ?? 'Sistema' }} · {{ $activity->created_at->diffForHumans() }}
@empty
—Sin actividad registradaLos cambios administrativos aparecerán aquí.
@endforelse
@endsection