@extends('layouts.app-layout') @section('title','Detalle de Programa') @section('content')

Programa

Detalle del programa

@if(!empty($isFuncionario)) @endif
{{-- Columna principal --}}
{{ $programa->nombre }}
@php // Badge basado únicamente en el campo "estado" del modelo $badgeClass = $programa->estado === \App\Enums\ProgramaEstadoEnum::ABIERTO ? 'bg-success' : 'bg-secondary'; $badgeText = $programa->estado === \App\Enums\ProgramaEstadoEnum::ABIERTO ? 'Abierto' : 'Cerrado'; @endphp {{ $badgeText }}
Descripción completa
{{ $programa->descripcion_completa ?: 'Sin descripción completa' }}
Objetivo
{{ $programa->objetivo ?: 'Sin objetivo definido' }}
Requisitos para postularse
@php $reqsRaw = $programa->requisitos; @endphp @if($reqsRaw && is_array($reqsRaw) && count($reqsRaw) > 0)
    @foreach($reqsRaw as $requisito)
  • {{ $requisito['label'] ?? 'Campo' }} @if($requisito['requerido'] ?? false) * @endif Tipo: {{ ucfirst($requisito['tipo'] ?? 'text') }}
  • @endforeach
@else Sin requisitos especificados @endif
Documentación requerida
@php $docsRaw = $programa->documentacion_requerida; @endphp @if($docsRaw) @php $partes = preg_split('/[•\n,;]+/u', $docsRaw, -1, PREG_SPLIT_NO_EMPTY); $items = array_values(array_filter(array_map(function($s){ return trim($s); }, $partes))); @endphp @if(count($items))
    @foreach($items as $it)
  • {{ $it }}
  • @endforeach
@else {{ $docsRaw }} @endif @else {{ 'Sin documentación especificada' }} @endif
{{-- Columna lateral --}}
Fechas
Inicio: {{ $programa->fecha_inicio_postulacion ? $programa->fecha_inicio_postulacion->format('d/m/Y') : '—' }}
Fecha cierre: {{ $programa->fecha_cierre_postulacion ? $programa->fecha_cierre_postulacion->format('d/m/Y') : '—' }}

@php $user = auth()->user(); $esFuncionario = (bool)($user?->funcionario); @endphp @unless($esFuncionario) @php // Solo se considera contacto si NO es funcionario $esSoloContacto = (bool)($user?->contacto); $tieneUnidadAtencion = $esSoloContacto ? $user->contacto->unidadesAtencion()->exists() : false; $programaAbierto = $programa->estado === \App\Enums\ProgramaEstadoEnum::ABIERTO; $puedePostular = $programaAbierto && $esSoloContacto && $tieneUnidadAtencion; @endphp {{-- Mostrar botón o mensajes según el estado (solo para no funcionarios) --}} @if($puedePostular) Postularme @elseif(!$programaAbierto)
Solo programas abiertos permiten iniciar postulaciones.
@elseif(!$esSoloContacto)
Solo usuarios contacto con unidad de atención pueden postularse.
@elseif(!$tieneUnidadAtencion)
Tu perfil no tiene una unidad de atención asignada. Por favor contacta al administrador.
@endif @endunless
@if(!empty($isFuncionario)) {{-- Modal de confirmación de eliminación --}} @endif @endsection