@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