<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
header('Content-Type: application/json'); // Muy importante

// Conexión a la base de datos
$host = 'localhost';
$db = 'TRAX';
$username = 'root';
$password = 'root';
$conn = new mysqli($host, $username, $password, $db);
$conn->set_charset("utf8");

header('Content-Type: application/json');

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

    // Verificar si hay conflicto en horarios para los técnicos
    if (isset($_POST['fecha']) && isset($_POST['tecnicos'])) {
    $fecha = $_POST['fecha'];
    $tecnicos = $_POST['tecnicos'];
    $diaCompleto = isset($_POST['diaCompleto']) && $_POST['diaCompleto'] == "1";

    $placeholders = implode(',', array_fill(0, count($tecnicos), '?'));
    $types = str_repeat('i', count($tecnicos));

    if ($diaCompleto) {
        // Verificar si algún técnico ya tiene alguna hora ocupada en esa fecha
        $sql = "SELECT 1 
                FROM PARTIDAS_ORDEN po
                JOIN ORDENES o ON po.CVE_ORDEN = o.CLAVE
                JOIN ORDENES_TECNICOS ot ON ot.CVE_ORDEN = o.CLAVE
                WHERE o.FECHA = ? AND ot.CVE_TECNICO IN ($placeholders)";
        $params = array_merge([$fecha], $tecnicos);
        $stmt = $conn->prepare($sql);
        $stmt->bind_param("s" . $types, ...$params);

    } else if (isset($_POST['hora'])) {
        $horario = $_POST['hora'];

        // Verificar si la hora específica ya está ocupada para alguno de los técnicos
        $sql = "SELECT 1 
                FROM PARTIDAS_ORDEN po
                JOIN ORDENES o ON po.CVE_ORDEN = o.CLAVE
                JOIN ORDENES_TECNICOS ot ON ot.CVE_ORDEN = o.CLAVE
                WHERE o.FECHA = ? AND po.HORARIO = ? AND ot.CVE_TECNICO IN ($placeholders)";
        $params = array_merge([$fecha, $horario], $tecnicos);
        $stmt = $conn->prepare($sql);
        $stmt->bind_param("ss" . $types, ...$params);

    } else {
        echo json_encode(["disponible" => false]);
        exit;
    }

    $stmt->execute();
    $result = $stmt->get_result();
    echo json_encode(["disponible" => $result->num_rows === 0]);
    $stmt->close();
}


    // Obtener fechas que ya tienen 4 horarios ocupados para ese técnico
    elseif (isset($_POST['tecnico'])) {
        $tecnico = intval($_POST['tecnico']);
        $total_horarios = 4;

        $sql = "SELECT o.FECHA
                FROM PARTIDAS_ORDEN po
                JOIN ORDENES o ON po.CVE_ORDEN = o.CLAVE
                JOIN ORDENES_TECNICOS ot ON ot.CLAVE_ORDEN = o.CLAVE
                WHERE ot.CVE_TECNICO = ?
                GROUP BY o.FECHA
                HAVING COUNT(DISTINCT po.HORARIO) >= ?";
        
        $stmt = $conn->prepare($sql);
        $stmt->bind_param("ii", $tecnico, $total_horarios); 
        $stmt->execute();
        $result = $stmt->get_result();
        
        $fechas_ocupadas = [];
        while ($row = $result->fetch_assoc()) {
            $fechas_ocupadas[] = $row['FECHA'];
        }
        
        echo json_encode($fechas_ocupadas);
        $stmt->close();
    }
}

$conn->close();
?>
