{{--
Ticket de invitación (Versión 2)
Props esperados (cualquiera de estas variantes):
- $ticket: array con keys opcionales
name: string -> Nombre a mostrar
people: int -> Cantidad de personas/pases
table: string|int|null -> Nro de mesa
message: string|null -> Mensaje personalizado
- o variables sueltas: $guest, $guest_name, $number_of_guests, $guest_table
--}}
@php
// Helper de acceso seguro para soportar array u objeto
$get = function ($src, $key, $default = null) {
if (is_array($src)) {
return $src[$key] ?? $default;
}
if (is_object($src)) {
return $src->{$key} ?? $default;
}
return $default;
};
// Normalizar $ticket a una estructura accesible
$tSrc = $ticket ?? null;
$t = is_array($tSrc) || is_object($tSrc) ? $tSrc : [];
// Normalizar $guest a modelo, stdClass o array
$guestModel = $guest ?? null;
// Construir nombre evitando mostrar la palabra "Grupo"
$computedFromModel = null;
if (!is_null($guestModel)) {
$first = trim((string)$get($guestModel, 'first_name', ''));
$last = trim((string)$get($guestModel, 'last_name', ''));
if ($last !== '' && mb_strtolower($last) !== 'grupo') {
$computedFromModel = trim($first.' '.$last);
} else {
$computedFromModel = $first;
}
}
$name = $get($t, 'name', $guest_name ?? $computedFromModel);
if (!is_null($name)) {
// Si por algún motivo viene con sufijo "Grupo", removerlo de forma segura
$name = preg_replace('/\s+grupo\s*$/iu', '', trim((string)$name));
}
$people = $get($t, 'people', $number_of_guests ?? $get($guestModel, 'number_of_guests'));
$tableNumber = $get($t, 'table', $guest_table ?? null);
// Solo mostrar el mensaje personalizado del invitado. Si no hay, usar null (se mostrará "-").
$message = $get($guestModel, 'message');
@endphp
@once
@push('styles')
@endpush
@endonce
Invitación válida para: