@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
Centro de operaciones

Buen día, {{ Str::before(auth()->user()->name, ' ') }}

{{ now()->translatedFormat('l, d \d\e F \d\e Y') }} · Estas son las áreas que requieren tu atención.

Ver sitio ↗ @can('courses.create')+ Crear curso@endcan
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
Últimos seis meses

Nuevas inscripciones

{{ $enrollmentTrend->sum('total') }} en el periodo
@foreach($enrollmentTrend as $month)
{{ $month['total'] }}{{ $month['label'] }}
@endforeach
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
Control académico

Cursos por revisar

@can('courses.moderate')Ver todos@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
Finanzas

Pagos por validar

@can('orders.view')Ver todos@endcan
@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
Rendimiento

Cursos con más estudiantes

@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
Comunidad

Usuarios recientes

@can('users.view')Administrar@endcan
@forelse($recentUsers as $user)
{{ $user->name }}{{ Str::headline($user->roles->first()?->name ?? 'Sin rol') }} · {{ $user->created_at->diffForHumans() }}
@empty

Sin usuarios recientes.

@endforelse
Seguridad y cambios

Actividad reciente

@can('audit.view')Ver auditoría@endcan
@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