<?php
require_once(__DIR__ . '/../db/conexion.php');
header('Content-Type: application/json');

$nombre_pdv = $_GET['pdv'] ?? '';
$nombre_pdv = trim($nombre_pdv);
$response = ['success' => false];

if (empty($nombre_pdv)) {
    echo json_encode($response);
    exit;
}

// 1. Obtener ORGPDV desde tabla Tiendas
$sql = "SELECT ORGanizacionSOC, PDV FROM Tiendas WHERE PDV LIKE CONCAT('%', ?, '%') LIMIT 1";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s", $nombre_pdv);
$stmt->execute();
$res = $stmt->get_result();

if ($res->num_rows === 0) {
    echo json_encode(['success' => false, 'message' => 'PDV no encontrado']);
    exit;
}

$dataPDV = $res->fetch_assoc();
$orgpdv = $dataPDV['ORGanizacionSOC'];
$nombreRealPDV = $dataPDV['PDV'];

// 2. Obtener posiciones de ese ORGPDV con LEFT JOIN a Plantilla
$sql = "
    SELECT 
        pos.codigo,
        pos.NombrePuesto AS puesto,
        pos.tipoPosic,
        CASE 
            WHEN pos.tipoPosic = 'ÚNICO' THEN 1 
            WHEN pos.tipoPosic = 'COMPUESTO' THEN 0.5 
            ELSE 1
        END AS valor,
        pl.CURP,
        CONCAT(pl.NOMBRES, ' ', pl.`APELLIDO PATERNO`, ' ', pl.`APELLIDO MATERNO`) AS nombre_ocupante
    FROM Posiciones pos
    LEFT JOIN Plantilla pl ON pos.codigo = pl.posicionCode
    WHERE pos.ORGPDV = ?
";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s", $orgpdv);
$stmt->execute();
$res = $stmt->get_result();

// Totales
$vacantesTiempoCompleto = 0;
$vacantesMedioTiempo = 0;
$ocupadas = 0;

$detalle = [];

while ($row = $res->fetch_assoc()) {
    $ocupado = !empty($row['CURP']);
    $tipo = strtoupper($row['tipoPosic'] ?? 'ÚNICO');

    // Clasificación
    if ($ocupado) {
        $ocupadas++;
    } else {
        if ($tipo === 'ÚNICO') {
            $vacantesTiempoCompleto++;
        } elseif ($tipo === 'COMPUESTO') {
            $vacantesMedioTiempo++;
        }
    }

    $detalle[] = [
        'codigo'   => $row['codigo'],
        'puesto'   => $row['puesto'],
        'tipo'     => $tipo,
        'ocupado'  => $ocupado,
        'estatus'  => $ocupado ? 'OCUPADA' : 'VACANTE',
        'curp'     => $row['CURP'],
        'nombre'   => $row['nombre_ocupante']
    ];
}

// Respuesta final
echo json_encode([
    'success' => true,
    'pdv'     => $nombreRealPDV,
    'resumen' => [
        'tiempo_completo' => $vacantesTiempoCompleto,
        'medio_tiempo'    => $vacantesMedioTiempo,
        'ocupadas'        => $ocupadas
    ],
    'posiciones' => $detalle
]);
