<?php
// vistas/empty_state.php
//
// Componente reutilizable para "estados vacíos amables" — se usa cuando un
// listado no tiene registros. La función devuelve un string HTML que se puede:
//   1) pasar a DataTables como language.emptyTable vía json_encode, o
//   2) inyectar directamente en un <div> de la vista con echo.
//
// Convención: Font Awesome ya cargado por header.php, clases Bootstrap 3/AdminLTE.
//
// Parámetros:
//   $icono       — nombre del ícono Font Awesome SIN prefijo "fa-" (ej. "user-md")
//   $titulo      — título corto (1 línea)
//   $descripcion — frase de 1-2 líneas que orienta al usuario
//   $cta_label   — texto del botón (opcional). Si está vacío, no se renderiza CTA
//   $cta_url     — href del botón (cuando es navegación a otra vista)
//   $cta_onclick — handler JS (cuando es acción inline). Si se pasa, prevalece sobre cta_url

if (!function_exists('hc_empty_state_html')) {
    function hc_empty_state_html($icono, $titulo, $descripcion, $cta_label = '', $cta_url = '', $cta_onclick = '')
    {
        // Saneamiento defensivo — el HTML termina embebido en strings JS.
        $icono       = htmlspecialchars($icono, ENT_QUOTES, 'UTF-8');
        $titulo      = htmlspecialchars($titulo, ENT_QUOTES, 'UTF-8');
        $descripcion = htmlspecialchars($descripcion, ENT_QUOTES, 'UTF-8');
        $cta_label   = htmlspecialchars($cta_label, ENT_QUOTES, 'UTF-8');
        $cta_url     = htmlspecialchars($cta_url, ENT_QUOTES, 'UTF-8');
        $cta_onclick = htmlspecialchars($cta_onclick, ENT_QUOTES, 'UTF-8');

        // CTA: onclick (crear) prevalece sobre url (navegar). Cada uno con ícono propio.
        $cta_html = '';
        if ($cta_label !== '') {
            if ($cta_onclick !== '') {
                $cta_html = '<button type="button" onclick="' . $cta_onclick . '" class="btn btn-primary btn-lg">'
                          . '<i class="fa fa-plus-circle"></i> ' . $cta_label . '</button>';
            } elseif ($cta_url !== '') {
                $cta_html = '<a href="' . $cta_url . '" class="btn btn-primary btn-lg">'
                          . '<i class="fa fa-arrow-circle-right"></i> ' . $cta_label . '</a>';
            }
        }

        return '<div class="hc-empty-state text-center" style="padding:60px 20px 50px;">'
             // Ícono en círculo sutil
             . '<div class="hc-empty-state-icon-wrap" style="width:110px;height:110px;border-radius:50%;'
             .   'background:#f4f6f9;display:inline-flex;align-items:center;justify-content:center;'
             .   'margin-bottom:18px;">'
             . '<i class="fa fa-' . $icono . ' fa-3x" style="color:#9aa5b1;"></i>'
             . '</div>'
             // Título
             . '<h4 style="color:#3c4858;font-weight:600;margin:0 0 10px;font-size:18px;">' . $titulo . '</h4>'
             // Descripción
             . '<p style="color:#7a8694;max-width:480px;margin:0 auto;line-height:1.5;font-size:14px;">'
             . $descripcion . '</p>'
             // CTA (si aplica)
             . ($cta_html !== '' ? '<div style="margin-top:22px;">' . $cta_html . '</div>' : '')
             . '</div>';
    }
}
?>
