<?php
// perfil/excluir_perfil_empresa.php (COM LOG)

session_start();
include '../conexao.php'; 

if (!isset($_SESSION['id']) || ($_SESSION['role'] ?? '') !== 'Empresas') {
    header("Location: ../login.php"); 
    exit();
}

$id_empresa = (int)$_SESSION['id'];

try {
    $pdo->beginTransaction();

    // 1. BUSCAR DADOS DA EMPRESA ANTES DE EXCLUIR
    $stmt_fetch = $pdo->prepare("SELECT nome_empresa, email FROM Empresas WHERE id = :id");
    $stmt_fetch->bindParam(':id', $id_empresa);
    $stmt_fetch->execute();
    $empresa_data = $stmt_fetch->fetch(PDO::FETCH_ASSOC);

    if (!$empresa_data) {
        throw new Exception("Dados da empresa não encontrados.");
    }
    
    // 2. REGISTRAR LOG DA EXCLUSÃO
    $sql_log = "INSERT INTO LogExclusoesEmpresas 
                (empresa_id, nome_empresa, email_excluido, motivo, usuario_responsavel)
                VALUES (:emp_id, :nome, :email, :motivo, :responsavel)";
    
    $stmt_log = $pdo->prepare($sql_log);
    $stmt_log->execute([
        'emp_id' => $id_empresa,
        'nome' => $empresa_data['nome_empresa'],
        'email' => $empresa_data['email'],
        // Você pode coletar o motivo via um campo hidden/POST no modal se necessário
        'motivo' => 'Exclusão voluntária do próprio perfil.',
        'responsavel' => 'Empresa ID: ' . $id_empresa
    ]);
    
    // 3. EXCLUIR DADOS RELACIONADOS
    $sql_vagas = "DELETE FROM vagas WHERE id_empresa = :id";
    $stmt_vagas = $pdo->prepare($sql_vagas);
    $stmt_vagas->bindParam(':id', $id_empresa);
    $stmt_vagas->execute();

    // 4. EXCLUIR O PERFIL PRINCIPAL
    $sql_empresa = "DELETE FROM Empresas WHERE id = :id";
    $stmt_empresa = $pdo->prepare($sql_empresa);
    $stmt_empresa->bindParam(':id', $id_empresa);
    $stmt_empresa->execute();

    $pdo->commit();

    // 5. FINALIZAÇÃO (Sucesso)
    session_destroy();
    header("Location: ../index.php?sucesso=empresa_excluida"); 
    exit();

} catch (Exception $e) {
    // 6. ROLLBACK
    if ($pdo && $pdo->inTransaction()) {
        $pdo->rollBack();
    }
    error_log('Erro fatal ao excluir perfil de empresa: ' . $e->getMessage());
    
    $_SESSION['mensagem_rollback'] = "Falha ao excluir o perfil. Erro: " . substr($e->getMessage(), 0, 100);
    $_SESSION['tipo_mensagem_rollback'] = "danger";

    header("Location: ../editar_empresa.php?erro=falha_exclusao"); 
    exit();
}