<?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');
 $mysqli->set_charset("utf8mb4");

// ? JSON
 $input = json_decode(file_get_contents('php://input'), true);
if (!$input) {
    echo json_encode(['success'=>false,'message'=>'JSON invalido']);
    exit;
}

// --- VALIDACION DE PARAMETROS ---
 $slug_tienda = isset($input['slug_tienda']) ? trim($input['slug_tienda']) : '';
 $factura_id = isset($input['factura_id']) ? (int)$input['factura_id'] : 0;

if (!$slug_tienda || !$factura_id) {
    echo json_encode(['success' => false, 'message' => 'Parametros invalidos o incompletos.']);
    exit;
}

try {
    // 1. Buscar una nota de credito activa para la factura dada
    // Una nota activa es cualquier nota que no este 'reversada'
    $stmt = $mysqli->prepare("
        SELECT id 
        FROM notas_credito 
        WHERE factura_id_relacionada = ? AND slug_tienda = ? AND estado != 'reversada'
        LIMIT 1
    ");
    $stmt->bind_param("is", $factura_id, $slug_tienda);
    $stmt->execute();
    $result = $stmt->get_result();
    $stmt->close();

    // 2. Determinar si se puede crear una nueva nota
    // Si no hay resultados, significa que no hay una nota activa, por lo que se puede crear.
    $canCreate = ($result->num_rows === 0);

    echo json_encode([
        'success' => true,
        'canCreate' => $canCreate
    ]);

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