<?php
session_start();
header('Content-Type: application/json; charset=UTF-8');

require_once __DIR__ . '/../config/database.php';

function json_response($data, $code = 200) {
    http_response_code($code);
    echo json_encode($data, JSON_UNESCAPED_UNICODE);
    exit;
}

try {
    if (!isset($_SESSION['user']['codempleado'])) {
        json_response(['success' => false, 'message' => 'No autorizado'], 401);
    }

    $idsRaw = isset($_POST['ids']) ? $_POST['ids'] : '[]';
    $ids = json_decode($idsRaw, true);
    $estado = isset($_POST['estado']) ? trim($_POST['estado']) : '';

    if (!is_array($ids) || empty($ids)) {
        json_response(['success' => false, 'message' => 'IDs inválidos'], 400);
    }
    $ids = array_values(array_unique(array_map('intval', $ids)));
    $ids = array_filter($ids, function($v){ return $v > 0; });
    if (empty($ids)) {
        json_response(['success' => false, 'message' => 'IDs inválidos'], 400);
    }

    $permitidos = ['ATENDIDA', 'ACTIVO', 'BAJA'];
    if ($estado === '' || !in_array($estado, $permitidos, true)) {
        json_response(['success' => false, 'message' => 'Estado no permitido'], 400);
    }

    $database = new Database();
    $conn = $database->getConnection();

    // codempresa del usuario
    $stmtEmpresa = $conn->prepare("SELECT codempresa FROM templeado WHERE codempleado = ?");
    $stmtEmpresa->execute([$_SESSION['user']['codempleado']]);
    $empresa = $stmtEmpresa->fetch(PDO::FETCH_ASSOC);
    if (!$empresa || !$empresa['codempresa']) {
        json_response(['success' => false, 'message' => 'No se encontró empresa del usuario'], 403);
    }
    $codempresaUsuario = $empresa['codempresa'];

    // Construir placeholders dinámicos
    $placeholders = implode(',', array_fill(0, count($ids), '?'));

    $sql = "UPDATE timportventas SET estado = ?, fecha_edicion = CURRENT_DATE() WHERE id IN ($placeholders) AND codempresa = ?";
    $params = array_merge([$estado], $ids, [$codempresaUsuario]);

    $stmt = $conn->prepare($sql);
    $stmt->execute($params);

    json_response(['success' => true, 'updated_count' => $stmt->rowCount()]);
} catch (Throwable $e) {
    json_response(['success' => false, 'message' => 'Error del servidor: ' . $e->getMessage()], 500);
}


