@extends('layouts.app-layout') @section('title', 'Detalle de contacto') @section('content') @php $isOwnProfile = auth()->check() && auth()->user()->contacto?->id === $contacto->id; $backUrl = $isOwnProfile ? route('contacto.dashboard') : route('contactos.index'); $estadoRaw = $contacto->estado->value ?? $contacto->estado; $estadoLabel = 'Inactivo'; $estadoClass = 'bg-warning-subtle text-warning-emphasis'; if ($contacto->trashed()) { $estadoLabel = 'Eliminado'; $estadoClass = 'bg-danger-subtle text-danger-emphasis'; } elseif ($estadoRaw === 'activo') { $estadoLabel = 'Activo'; $estadoClass = 'bg-success-subtle text-success-emphasis'; } $puedeRestaurar = $contacto->trashed() || $estadoRaw === 'inactivo'; $puedeEditar = !$contacto->trashed(); $puedeInactivar = $puedeInactivar ?? false; $nombre = trim(($contacto->user->nombre ?? '') . ' ' . ($contacto->user->apellido ?? '')); $iniciales = mb_strtoupper( mb_substr($contacto->user->nombre ?? '', 0, 1) . mb_substr($contacto->user->apellido ?? '', 0, 1), ); $authUser = auth()->user(); $funcionarioAuth = $authUser?->funcionario; $funcionarioEstado = $funcionarioAuth?->estado?->value ?? $funcionarioAuth?->estado; $puedeVerTodasUnidades = (bool) $funcionarioAuth && $funcionarioEstado === \App\Enums\UserStatusEnum::ACTIVO->value; $unidadesAccesiblesIds = $puedeVerTodasUnidades ? collect() : ($authUser?->contacto?->unidadesAtencion()->pluck('unidades_atencion.id') ?? collect()); $rolesPorUnidad = $contacto->unidadesAtencion->map(function ($unidad) use ($puedeVerTodasUnidades, $unidadesAccesiblesIds) { $rolPivot = $unidad->pivot->rol_en_empresa ?? null; if ($rolPivot instanceof \App\Enums\RolEnEmpresaEnum) { $rolLabel = $rolPivot->label(); } else { $rolRaw = is_scalar($rolPivot) ? (string) $rolPivot : ''; $rolLabel = $rolRaw !== '' ? ucfirst(str_replace('_', ' ', $rolRaw)) : '—'; } return [ 'unidad_id' => $unidad->id, 'unidad' => $unidad->nombre_comercial ?? 'Unidad', 'rol' => $rolLabel, 'puede_ver' => $puedeVerTodasUnidades || $unidadesAccesiblesIds->contains($unidad->id), ]; }); @endphp
@if (session('success')) @endif @if ($contacto->trashed()) @endif
{{ $iniciales ?: 'C' }}

Perfil contacto

{{ $nombre ?: 'Contacto' }}

{{ $contacto->unidadesAtencion->count() }} unidad(es) {{ $estadoLabel }}
@if ($puedeEditar) @endif @if ($puedeInactivar) @endif @if ($puedeRestaurar)
@csrf @method('PATCH')
@endif

Datos personales

Email
{{ $contacto->user->email }}
Cedula
{{ $contacto->user->cedula ?? '—' }}
Telefono
{{ $contacto->user->telefono ?? '—' }}
Consentimiento de datos
{{ $contacto->consentimiento_datos ? 'Aceptado' : 'No aceptado' }}

Vinculacion

Roles por unidad
@forelse($rolesPorUnidad as $dato)
{{ $dato['rol'] }} @ {{ $dato['unidad'] }}
@empty
Sin roles asignados
@endforelse
Unidades asociadas
@if ($contacto->unidadesAtencion->isEmpty()) Sin unidades asociadas @else @foreach ($contacto->unidadesAtencion as $unidad) @php $puedeVerUnidad = $puedeVerTodasUnidades || $unidadesAccesiblesIds->contains($unidad->id); @endphp @if($puedeVerUnidad) {{ $unidad->nombre_comercial }} @else {{ $unidad->nombre_comercial }} @endif @endforeach @endif
Estado
{{ $estadoLabel }}

Trazabilidad

Creado
{{ $contacto->created_at->format('d/m/Y H:i') }}
Ultima actualizacion
{{ $contacto->updated_at->format('d/m/Y H:i') }}
@include('partials.privacy-policy-modal') @if ($puedeInactivar) @endif @endsection