<?php

/*
 * -------------------------------------------------------------------------
 * SISTEMA: Nouderg Technology - Adobe Presentaciones
 * ARCHIVO: NouReserva.php
 * AUTOR: Leonardo Argueta
 * FECHA: 2026-05-25
 * DESCRIPCION: Modelo de solo lectura de las reservas del sistema de
 *              logistica. Se conecta a la base de datos adobe_db para
 *              obtener el nombre del cliente por numero de reservacion.
 * -------------------------------------------------------------------------
 */

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class NouReserva extends Model
{
    protected $connection = 'logistica';
    protected $table      = 'nou_reservas';
    protected $primaryKey = 'id_reserva';

    // Solo lectura — no se modifican datos de logistica
    protected $guarded = ['*'];

    /**
     * Busca una reserva por numero de reservacion.
     * Retorna null si no existe.
     *
     * @param string $nou_var_num_reserva Numero de reservacion a buscar.
     * @return self|null
     */
    public static function Nou_fun_buscar_por_numero(string $nou_var_num_reserva): ?self
    {
        return self::where('num_reserva', $nou_var_num_reserva)->first();
    }

    /**
     * Retorna el nombre del cliente formateado en Title Case.
     *
     * @return string
     */
    public function Nou_fun_nombre_cliente(): string
    {
        return mb_convert_case(mb_strtolower($this->cliente), MB_CASE_TITLE, 'UTF-8');
    }
}