<?php
// @php83-utf8-shim
if (!function_exists("utf8_encode")) { function utf8_encode($s) { return mb_convert_encoding($s, "UTF-8", "ISO-8859-1"); } }
if (!function_exists("utf8_decode")) { function utf8_decode($s) { return mb_convert_encoding($s, "ISO-8859-1", "UTF-8"); } }
include "core/autoload.php";
include "core/app/model/PersonData.php";
include "core/app/model/SaasClient.php";

$search = isset($_GET['search']) ? trim($_GET['search']) : '';

// JOIN person + saas_clients para obtener estado del despliegue en una sola query
$con = Database::getCon();
$escapedSearch = mysqli_real_escape_string($con, $search);

$sql = "SELECT 
            p.id,
            p.name,
            p.name_c,
            p.email,
            p.phone,
            p.inicio_servicio,
            sc.id          AS saas_id,
            sc.status      AS saas_status,
            sc.crm_domain  AS saas_crm_domain,
            sc.bot_name    AS saas_bot_name
        FROM person p
        LEFT JOIN saas_clients sc ON sc.person_id = p.id
        WHERE (p.inicio_servicio IS NOT NULL OR p.costo_servicio IS NOT NULL OR p.fecha_pago IS NOT NULL)";

if ($escapedSearch !== '') {
    $sql .= " AND (p.name LIKE '%{$escapedSearch}%' OR p.name_c LIKE '%{$escapedSearch}%')";
}

$sql .= " ORDER BY p.id DESC";

$result = mysqli_query($con, $sql);
$clients = [];
if ($result) {
    while ($row = mysqli_fetch_assoc($result)) {
        $clients[] = $row;
    }
}

// Despliegues SaaS sin cliente vinculado (para el select del modal)
$saasLibres = [];
$rLibres = mysqli_query($con, "SELECT id, name, slug, status FROM saas_clients WHERE person_id IS NULL ORDER BY name ASC");
if ($rLibres) {
    while ($row = mysqli_fetch_assoc($rLibres)) {
        $saasLibres[] = $row;
    }
}

// Badge helpers
function saasStatusBadge($status) {
    switch ($status) {
        case 'active':    return '<span class="badge bg-success">Activo</span>';
        case 'pending':   return '<span class="badge bg-warning text-dark">Pendiente</span>';
        case 'failed':    return '<span class="badge bg-danger">Error</span>';
        case 'suspended': return '<span class="badge bg-secondary">Suspendido</span>';
        default:          return '';
    }
}

if (count($clients) > 0):
    foreach ($clients as $c):
        $displayName = !empty($c['name_c']) ? $c['name_c'] : $c['name'];
        $hasSaas     = !empty($c['saas_id']);
        $saasStatus  = $c['saas_status'] ?? null;
?>
        <div class="col" data-item="list">
            <div class="card h-100">
                <div class="card-body d-flex flex-column">
                    <a href="./?view=client&id=<?php echo $c['id']; ?>" class="text-decoration-none">
                        <h6 class="mb-1 text-primary"><?php echo htmlspecialchars($displayName); ?></h6>
                    </a>
                    <?php if (!empty($c['name'])): ?>
                        <p class="mb-1 small text-muted"><?php echo htmlspecialchars($c['name']); ?></p>
                    <?php endif; ?>
                    <p class="mb-1 small"><i class="fas fa-calendar-alt me-1 text-secondary"></i><?php echo htmlspecialchars($c['inicio_servicio'] ?? '-'); ?></p>
                    <?php if (!empty($c['email'])): ?>
                        <p class="mb-1 small"><i class="fas fa-envelope me-1 text-secondary"></i><?php echo htmlspecialchars($c['email']); ?></p>
                    <?php endif; ?>
                    <?php if (!empty($c['phone'])): ?>
                        <p class="mb-0 small"><i class="fas fa-phone me-1 text-secondary"></i><?php echo htmlspecialchars($c['phone']); ?></p>
                    <?php endif; ?>

                    <?php if ($hasSaas): ?>
                        <div class="mt-2">
                            <?php echo saasStatusBadge($saasStatus); ?>
                            <?php if (!empty($c['saas_crm_domain'])): ?>
                                <a href="https://<?php echo htmlspecialchars($c['saas_crm_domain']); ?>"
                                   target="_blank"
                                   class="badge bg-info text-decoration-none ms-1">
                                    <i class="fas fa-external-link-alt me-1"></i>CRM
                                </a>
                            <?php endif; ?>
                            <?php if (!empty($c['saas_bot_name'])): ?>
                                <span class="badge bg-success ms-1">
                                    <i class="fab fa-whatsapp me-1"></i>Bot
                                </span>
                            <?php endif; ?>
                        </div>
                        <div class="mt-2">
                            <a href="./?view=saas&opt=credentials&id=<?php echo $c['saas_id']; ?>"
                               class="btn btn-outline-secondary btn-sm me-1"
                               title="Credenciales">
                                <i class="fas fa-key"></i>
                            </a>
                            <a href="./?view=saas&opt=logs&id=<?php echo $c['saas_id']; ?>"
                               class="btn btn-outline-secondary btn-sm me-1"
                               title="Logs">
                                <i class="fas fa-file-alt"></i>
                            </a>
                            <a href="contrato_saas.php?person_id=<?php echo $c['id']; ?>"
                               class="btn btn-outline-danger btn-sm"
                               title="Descargar contrato PDF"
                               target="_blank">
                                <i class="fas fa-file-pdf"></i>
                            </a>
                        </div>
                    <?php else: ?>
                        <div class="mt-auto pt-2 d-flex flex-column gap-1">
                            <a href="./?view=saas-create&person_id=<?php echo $c['id']; ?>"
                               class="btn btn-primary btn-sm w-100">
                                <i class="fas fa-rocket me-1"></i> Desplegar Bot+CRM
                            </a>
                            <?php if (count($saasLibres) > 0): ?>
                            <button type="button"
                                    class="btn btn-outline-primary btn-sm w-100 btn-vincular-saas"
                                    data-person-id="<?php echo $c['id']; ?>"
                                    data-person-name="<?php echo htmlspecialchars($displayName, ENT_QUOTES); ?>"
                                    data-saas-opts="<?php echo htmlspecialchars(json_encode($saasLibres), ENT_QUOTES); ?>">
                                <i class="fas fa-link me-1"></i> Vincular despliegue existente
                            </button>
                            <?php endif; ?>
                        </div>
                    <?php endif; ?>
                </div>
            </div>
        </div>
<?php
    endforeach;
else:
    echo '<p class="text-muted px-2">No se encontraron clientes' .
         ($search !== '' ? ' con el término "<strong>' . htmlspecialchars($search) . '</strong>"' : '') .
         '.</p>';
endif;

// fin del archivo — modal y JS se manejan en clients_chatbots-view.php
