<?php
// Devuelve el horario y descansos de un colaborador para una quincena específica
require_once __DIR__ . '/../config/database.php';
header('Content-Type: application/json');

$curp = isset($_GET['curp']) ? trim($_GET['curp']) : null;
$id_quincena = isset($_GET['id_quincena']) ? $_GET['id_quincena'] : null;

// Log de depuración de parámetros recibidos
file_put_contents(__DIR__ . '/debug_get_horario_colaborador.log', date('c') . " | curp: $curp | id_quincena: $id_quincena\n", FILE_APPEND);

// Validación estricta de id_quincena
if (!$curp || !$id_quincena || !is_numeric($id_quincena) || intval($id_quincena) <= 0 || $id_quincena === 'undefined') {
    file_put_contents(__DIR__ . '/debug_get_horario_colaborador.log', date('c') . " | ERROR: Datos incompletos o id_quincena inválido\n", FILE_APPEND);
    echo json_encode([
        'success' => false,
        'message' => 'Datos incompletos o id_quincena inválido',
        'debug' => ['curp' => $curp, 'id_quincena' => $id_quincena]
    ]);
    exit;
}

try {
    $db = new Database();
    $conn = $db->connect();
    // Obtener id_horario
    $stmt = $conn->prepare('SELECT id_horario FROM HorariosAsignados WHERE curp = ? AND id_quincena = ?');
    $stmt->execute([$curp, $id_quincena]);
    $row = $stmt->fetch(PDO::FETCH_ASSOC);
    if (!$row) {
        echo json_encode(['success' => false, 'message' => 'No existe horario para este colaborador y quincena']);
        exit;
    }
    $id_horario = $row['id_horario'];
    // Obtener detalle de horario semanal
    $stmt = $conn->prepare('SELECT dia_semana, hora_entrada, hora_salida FROM DetalleHorariosSemana WHERE id_horario = ?');
    $stmt->execute([$id_horario]);
    $horario = $stmt->fetchAll(PDO::FETCH_ASSOC);
    // Obtener descansos
    $stmt = $conn->prepare('SELECT dia_semana, fecha_descanso FROM DiasDescanso WHERE id_horario = ? AND id_quincena = ?');
    $stmt->execute([$id_horario, $id_quincena]);
    $descansos = $stmt->fetchAll(PDO::FETCH_ASSOC);
    echo json_encode([
        'success' => true,
        'horario' => $horario,
        'descansos' => $descansos
    ]);
} catch (Exception $e) {
    echo json_encode(['success' => false, 'message' => $e->getMessage()]);
}
