<?php
require_once 'conexao.php';
session_start();

// Verificar se o usuário está logado
if (!isset($_SESSION['logado']) || $_SESSION['logado'] !== true) {
    header('HTTP/1.1 401 Unauthorized');
    echo json_encode(['success' => false, 'message' => 'Usuário não autenticado']);
    exit;
}

// Verificar CSRF token
if (!isset($_POST['csrf_token']) || $_POST['csrf_token'] !== $_SESSION['csrf_token']) {
    header('HTTP/1.1 403 Forbidden');
    echo json_encode(['success' => false, 'message' => 'Token CSRF inválido']);
    exit;
}

// Verificar se é uma requisição AJAX
if (!isset($_SERVER['HTTP_X_REQUESTED_WITH']) || strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) !== 'xmlhttprequest') {
    header('HTTP/1.1 403 Forbidden');
    echo json_encode(['success' => false, 'message' => 'Acesso não permitido']);
    exit;
}

// Validar dados recebidos
if (!isset($_POST['id']) || !isset($_POST['ativo'])) {
    header('HTTP/1.1 400 Bad Request');
    echo json_encode(['success' => false, 'message' => 'Dados incompletos']);
    exit;
}

$produto_id = intval($_POST['id']);
$novo_status = intval($_POST['ativo']);
$tenant_id = $_SESSION['tenant_id'] ?? null;

if (!$tenant_id) {
    header('HTTP/1.1 400 Bad Request');
    echo json_encode(['success' => false, 'message' => 'Tenant não identificado']);
    exit;
}

try {
    // Verificar se o produto pertence ao tenant
    $sql_verificar = "SELECT id, nome FROM lista_produtos WHERE id = ? AND tenant_id = ?";
    $stmt_verificar = $conn->prepare($sql_verificar);
    $stmt_verificar->bind_param("ii", $produto_id, $tenant_id);
    $stmt_verificar->execute();
    $resultado = $stmt_verificar->get_result();
    
    if ($resultado->num_rows === 0) {
        header('HTTP/1.1 404 Not Found');
        echo json_encode(['success' => false, 'message' => 'Produto não encontrado']);
        exit;
    }
    
    $produto = $resultado->fetch_assoc();
    $stmt_verificar->close();
    
    // Atualizar status do produto
    $sql_atualizar = "UPDATE lista_produtos SET ativo = ? WHERE id = ? AND tenant_id = ?";
    $stmt_atualizar = $conn->prepare($sql_atualizar);
    $stmt_atualizar->bind_param("iii", $novo_status, $produto_id, $tenant_id);
    
    if ($stmt_atualizar->execute()) {
        $acao = $novo_status ? 'ativado' : 'inativado';
        echo json_encode([
            'success' => true, 
            'message' => "Produto '{$produto['nome']}' {$acao} com sucesso!"
        ]);
    } else {
        throw new Exception('Erro ao atualizar produto no banco de dados');
    }
    
    $stmt_atualizar->close();
    
} catch (Exception $e) {
    header('HTTP/1.1 500 Internal Server Error');
    echo json_encode(['success' => false, 'message' => 'Erro interno do servidor: ' . $e->getMessage()]);
}

$conn->close();
?>