<?php
// Devuelve colaboradores activos filtrando por departamento interno (sector) y PDV
require_once __DIR__ . '/../config/database.php';
require_once __DIR__ . '/../models/Empleados.php';
header('Content-Type: application/json');


$region = isset($_GET['region']) ? $_GET['region'] : '';
$pdv = isset($_GET['pdv']) ? $_GET['pdv'] : '';

if (!$region && !$pdv) {
    echo json_encode([]);
    exit;
}

try {
    $db = (new Database())->connect();
    $empleadosModel = new EmpleadosModel($db);
    $debug = isset($_GET['debug']) ? true : false;
    $log = [];
    $valorRecibido = $pdv ?: $region;
    $valorNormalizado = mb_strtolower(trim($valorRecibido));
    $sql = "SELECT ... FROM Plantilla WHERE LOWER(TRIM(`DEPARTAMENTO INTERNO`)) = LOWER(TRIM(:departamento)) AND `Estatus` = 'ACTIVO'";
    if ($pdv) {
        $log['busqueda'] = 'PDV';
        $log['valor_recibido'] = $pdv;
        $log['valor_normalizado'] = $valorNormalizado;
        $log['sql'] = $sql;
        $colaboradores = $empleadosModel->getActivosByDepartamentoInterno($pdv);
    } else {
        $log['busqueda'] = 'REGION';
        $log['valor_recibido'] = $region;
        $log['valor_normalizado'] = $valorNormalizado;
        $log['sql'] = $sql;
        $colaboradores = $empleadosModel->getActivosByDepartamentoInterno($region);
    }
    $log['num_resultados'] = is_array($colaboradores) ? count($colaboradores) : 0;
    $log['resultados'] = array_map(function($colab) {
        return [
            'nombre' => trim($colab['nombres'] . ' ' . $colab['apellido_paterno'] . ' ' . $colab['apellido_materno']),
            'curp' => $colab['curp'],
            'estatus' => isset($colab['Estatus']) ? $colab['Estatus'] : null
        ];
    }, $colaboradores);
    $result = array_map(function($colab) {
        return [
            'nombre' => trim($colab['nombres'] . ' ' . $colab['apellido_paterno'] . ' ' . $colab['apellido_materno']),
            'attuid' => $colab['attuid'],
            'curp' => $colab['curp']
        ];
    }, $colaboradores);
    if ($debug) {
        echo json_encode(['colaboradores' => array_values($result), 'log' => $log]);
    } else {
        echo json_encode(array_values($result));
    }
} catch (Exception $e) {
    $debug = isset($_GET['debug']) ? true : false;
    if ($debug) {
        echo json_encode([
            'colaboradores' => [],
            'error' => $e->getMessage(),
            'trace' => $e->getTraceAsString()
        ]);
    } else {
        echo json_encode([]);
    }
}
