<?php
// ? Errores (quitar en produccion)
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// ? CORS y Headers
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: Content-Type");
header("Access-Control-Allow-Methods: POST, OPTIONS");
header("Content-Type: application/json; charset=utf-8");

if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') { http_response_code(200); exit; }

// ? Conexion
require_once(__DIR__ . '/../../config.php');

// Agregar esta línea para obtener los datos JSON enviados
 $input = json_decode(file_get_contents('php://input'), true);

 $slug_tienda = isset($input['slug_tienda']) ? trim($input['slug_tienda']) : '';
 $fecha_inicio = isset($input['fechaInicio']) ? trim($input['fechaInicio']) : null;
 $fecha_fin = isset($input['fechaFin']) ? trim($input['fechaFin']) : null;

if (empty($slug_tienda)) {
    echo json_encode(['success' => false, 'message' => 'El slug de la tienda es obligatorio.']);
    exit;
}

try {
    // --- CONSTRUCCIÓN DINÁMICA DE LA CONSULTA ---
    $sql = "SELECT id, cajero, turno, fecha_apertura, monto_inicial, fecha_cierre, resumen_ventas, monto_final_esperado, monto_final_real, diferencia, estado 
            FROM cierres_de_caja 
            WHERE slug_tienda = ?";
    $params = [$slug_tienda];
    $types = 's';

    // Añadir filtros de fecha si se proporcionan
    if (!empty($fecha_inicio)) {
        $sql .= " AND DATE(fecha_apertura) >= ?";
        $params[] = $fecha_inicio;
        $types .= 's';
    }

    if (!empty($fecha_fin)) {
        $sql .= " AND DATE(fecha_apertura) <= ?";
        $params[] = $fecha_fin;
        $types .= 's';
    }

    $sql .= " ORDER BY fecha_apertura DESC";

    $stmt = $mysqli->prepare($sql);
    $stmt->bind_param($types, ...$params);
    $stmt->execute();
    $result = $stmt->get_result();
    
    $cierres = [];
    while ($row = $result->fetch_assoc()) {
        $cierres[] = $row;
    }
    $stmt->close();
    
    echo json_encode([
        'success' => true, 
        'cierres' => $cierres
    ]);

} catch (Exception $e) {
    http_response_code(500);
    echo json_encode(['success' => false, 'message' => 'Error en el servidor: ' . $e->getMessage()]);
} finally {
    if (isset($mysqli) && $mysqli) { $mysqli->close(); }
}
?>