<?php

/**
 * Mesero.php - Manejo de operaciones de meseros para la API de Mi App Windows
 * Este archivo maneja las operaciones CRUD para la tabla mesero
 */

// Si se accede directamente, denegar acceso
//if (!defined('BASEPATH')) exit('No direct script access allowed');

// Procesar solicitud para obtener todos los meseros
if (isset($datapost) && isset($datapost['tipo']) && $datapost['tipo'] === 'getMeseros') {
  try {
    // Conexión a la base de datos ya establecida en api.php
    $query = "SELECT idMesero, nombre, numeroMesero FROM mesero ORDER BY numeroMesero";
    $result = $conn->query($query);

    $meseros = [];
    while ($row = $result->fetch_assoc()) {
      // Convertir campos numéricos a enteros
      $row['idMesero'] = (int) $row['idMesero'];
      $row['numeroMesero'] = (int) $row['numeroMesero'];

      $meseros[] = $row;
    }

    sendResponse(true, "Meseros obtenidos correctamente", $meseros);
  } catch (Exception $e) {
    sendResponse(false, "Error al obtener meseros: " . $e->getMessage());
  }
}

// Procesar solicitud para obtener un mesero específico
if (isset($datapost) && isset($datapost['tipo']) && $datapost['tipo'] === 'getMesero') {
  $idMesero = isset($datapost['idMesero']) ? (int) $datapost['idMesero'] : 0;

  if (empty($idMesero)) {
    sendResponse(false, "Debe proporcionar el ID del mesero");
  }

  try {
    $query = "SELECT * FROM mesero WHERE idMesero = ? LIMIT 1";
    $stmt = $conn->prepare($query);
    $stmt->bind_param("i", $idMesero);
    $stmt->execute();
    $result = $stmt->get_result();

    if ($result->num_rows === 0) {
      sendResponse(false, "Mesero no encontrado");
    }

    $mesero = $result->fetch_assoc();
    // Convertir campos numéricos a enteros
    $mesero['idMesero'] = (int) $mesero['idMesero'];
    $mesero['numeroMesero'] = (int) $mesero['numeroMesero'];

    sendResponse(true, "Mesero obtenido correctamente", $mesero);
  } catch (Exception $e) {
    sendResponse(false, "Error al obtener el mesero: " . $e->getMessage());
  }
}

// Si no se reconoce el tipo de solicitud
sendResponse(false, "Tipo de solicitud de mesero no reconocida");
