@include('partials.profesional-header', [ 'title'=>'Perfil del '.($user->rol === 'psiquiatra' ? 'psiquiatra' : 'psicólogo'), 'subtitle'=>'Actualiza tu información profesional y revisa cómo se verá tu perfil público para los pacientes.' ]) @include('partials.frontend-alerts') @php $profile = $user->professionalProfile; $diasAtencion = old('dias_atencion', $profile?->dias_atencion ?? []); $formacionAcademica = old('formacion_academica_text', implode("\n", (array) ($profile?->formacion_academica ?? []))); $especialidadesTexto = old('especialidades_text', implode(', ', (array) ($profile?->especialidades ?? []))); $especialidades = collect((array)($profile?->especialidades ?? []))->filter()->values(); $formacion = collect((array)($profile?->formacion_academica ?? []))->filter()->values(); $areas = collect((array)($profile?->areas ?? []))->filter()->values(); $enfoques = old('enfoques', $profile?->enfoques ?? []); $poblaciones = old('poblaciones', $profile?->poblaciones ?? []); $areasSeleccionadas = old('areas', $profile?->areas ?? []); $documentos = (array)($profile?->documentos ?? []); $initials = collect(explode(' ', trim($user->nombre_completo ?: $user->name ?: $user->email)))->filter()->take(2)->map(fn($part)=>mb_substr($part,0,1))->implode(''); $statusLabel = match($user->professional_status) { 'approved' => 'Perfil aprobado', 'pending' => 'En revisión administrativa', 'rejected' => 'Perfil rechazado', default => 'Perfil incompleto', }; $statusClass = match($user->professional_status) { 'approved' => 'ok', 'pending' => 'warn', 'rejected' => 'danger', default => 'muted', }; $diasMap = ['lunes'=>'L','martes'=>'M','miércoles'=>'M','jueves'=>'J','viernes'=>'V','sábado'=>'S','domingo'=>'D']; $tarifa = $profile?->costo_min ? '$'.number_format((float)$profile->costo_min,0).' MXN' : 'Pendiente'; $generos = [''=>'Seleccionar…','femenino'=>'Femenino','masculino'=>'Masculino','no-binario'=>'No binario','prefiero-no-decir'=>'Prefiero no decirlo','otro'=>'Otro']; $relacionesEmergencia = ['madre'=>'Madre','padre'=>'Padre','hermano/a'=>'Hermano/a','pareja'=>'Pareja','amigo/a'=>'Amigo/a','familiar'=>'Familiar','tutor/a'=>'Tutor/a','otro'=>'Otro']; $professionalPrefix = $user->rol === 'psiquiatra' ? 'Dr.' : 'Psic.'; $dayNamesFull = ['lunes'=>'Lunes','martes'=>'Martes','miércoles'=>'Miércoles','jueves'=>'Jueves','viernes'=>'Viernes','sábado'=>'Sábado','domingo'=>'Domingo']; $availability = (array) ($profile?->disponibilidad ?: []); $scheduleLabels = collect(['lunes','martes','miércoles','jueves','viernes','sábado','domingo'])->map(function ($day) use ($availability, $diasAtencion, $dayNamesFull) { $activeDay = in_array($day, (array) $diasAtencion, true) || in_array(str_replace('é','e',$day), (array) $diasAtencion, true) || in_array(str_replace('á','a',$day), (array) $diasAtencion, true); if (! $activeDay) return null; $raw = $availability[$day] ?? $availability[str_replace('é','e',$day)] ?? $availability[str_replace('á','a',$day)] ?? null; $start = is_array($raw) ? ($raw['inicio'] ?? $raw['start'] ?? $raw[0] ?? null) : null; $end = is_array($raw) ? ($raw['fin'] ?? $raw['end'] ?? $raw[1] ?? null) : null; return ['day' => $dayNamesFull[$day] ?? ucfirst($day), 'hours' => ($start && $end) ? $start.' - '.$end : 'Horario por confirmar']; })->filter()->values(); @endphp
{{ $initials ?: 'IR' }}

{{ $professionalPrefix }} {{ $user->nombre_completo ?: $user->name }}

{{ $profile?->especialidad_principal ?: ucfirst($user->rol).' sin especialidad pública registrada' }}

{{ $statusLabel }} @if($profile?->updated_at)Última actualización: {{ $profile->updated_at->format('d/m/Y H:i') }}@endif
@csrf

Mi perfil profesional

Guarda avances cuando quieras. Cuando completes todos los datos y documentos requeridos, se enviará automáticamente al administrador para validación.

Completa tu información profesional. Guarda tus avances cuando quieras. Cuando termines los datos requeridos y subas tus documentos, tu perfil se enviará automáticamente al administrador para revisión.

Datos personales

Contacto de emergencia

Credenciales y formación

Información pública de consulta

Días de atención visibles
@foreach(['lunes'=>'Lunes','martes'=>'Martes','miércoles'=>'Miércoles','jueves'=>'Jueves','viernes'=>'Viernes','sábado'=>'Sábado','domingo'=>'Domingo'] as $value => $label) @endforeach
Horario de servicio por día El sistema validará que pacientes y profesionales solo puedan agendar dentro de estos horarios.
@foreach(['lunes'=>'Lunes','martes'=>'Martes','miércoles'=>'Miércoles','jueves'=>'Jueves','viernes'=>'Viernes','sábado'=>'Sábado','domingo'=>'Domingo'] as $value => $label)
{{ $label }}a
@endforeach

Especialidades clínicas

@foreach(['TCC','Humanista','Psicoanálisis','Sistémica','Mindfulness','Neuropsicología'] as $value) @endforeach
@foreach(['Niños','Adolescentes','Adultos','Parejas','Familias','Adultos mayores'] as $value) @endforeach
@foreach(['Ansiedad','Depresión','Duelo','Estrés','Relaciones','Adicciones','Trauma','TDAH'] as $value) @endforeach

Seguridad

{{ $initials ?: 'IR' }}

{{ $professionalPrefix }} {{ $user->nombre_completo ?: $user->name }}

{{ $profile?->especialidad_principal ?: 'Especialidad pendiente de completar' }}

@if($user->professional_status === 'approved')Perfil verificado por IRIS@elseVista previa privada@endif

Acerca de mí

{{ $profile?->biografia ?: 'Agrega una biografía profesional para que los pacientes conozcan tu enfoque.' }}

Formación académica

    @forelse($formacion as $item)
  • {{ $item }}
  • @empty
  • Formación pendiente de registrar.
  • @endforelse

Especialidades

@forelse($especialidades->merge($areas)->unique()->take(8) as $item){{ $item }}@emptyEspecialidades pendientes@endforelse

Idiomas

{{ $profile?->idiomas ?: 'No especificado' }}

Modalidad

{{ $profile?->modalidad ?: 'No especificada' }}

Ubicación

{{ $profile?->ubicacion ?: 'No especificada' }}

Duración

{{ $profile?->duracion_sesion ?: 50 }} minutos

Suscripción profesional

Plan y pagos del {{ $user->rol === 'psiquiatra' ? 'psiquiatra' : 'psicólogo' }}

Administra el acceso a las herramientas clínicas después de la aprobación administrativa.

{{ $statusLabel }}
Plan actual

{{ $subscription?->status === 'active' ? $subscription->plan : 'Sin suscripción activa' }}

$800 MXN/ mes

O plan anual $7,680 MXN

  • ✓ Gestión integral de pacientes y agenda
  • ✓ Perfil público visible en Buscar especialista
  • ✓ Solicitudes de cita y reagenda
  • ✓ Prescripción de tareas y seguimiento clínico
  • ✓ Auditoría clínica y adjuntos privados
@if($user->professional_status !== 'approved')
Primero completa tu perfil y espera la aprobación del administrador. Después podrás pagar la suscripción con PayPal.
@elseif($subscription?->status === 'active')
Suscripción activa hasta {{ $subscription->ends_at ? $subscription->ends_at->format('d/m/Y') : 'fecha no especificada' }}.
@else @endif
Facturación

Método de pago

PayPal

El sistema registra el pago solo cuando PayPal confirma la captura.

Historial de facturación

@if($subscription)
{{ $subscription->starts_at?->format('d M Y') ?? 'Fecha no disponible' }}

{{ $subscription->plan }} · {{ $subscription->status }}

${{ number_format((float)$subscription->amount,2) }} MXN
@else
Aún no hay pagos de suscripción registrados.
@endif @if($user->professional_rejection_reason)
Motivo de rechazo: {{ $user->professional_rejection_reason }}
@endif