# acrescentar_perguntas.py
# Este script ADICIONA novas perguntas à base de dados,
# garantindo que não insere perguntas com o mesmo enunciado.

import mysql.connector

# --- CONFIGURAÇÃO DA BASE DE DADOS ---
# Certifique-se de que estas credenciais estão corretas.
db_config = {
    'host': '127.0.0.1',
    'user': 'acesso_user',
    'password': 'Acesso_2@25',
    'database': 'acesso'
}

# --- NOVAS PERGUNTAS A SEREM ADICIONADAS ---
# Lista com 5 novas perguntas por categoria para cada um dos 8 cursos.
# IDs de Teste baseados na sua consulta:
# 1: Informática e Sistemas de Informação
# 2: Redes e Telecomunicações
# 3: Ciências Criminais
# 4: Direito
# 5: Hotelaria e Turismo
# 6: Logística e Gestão Comercial
# 7: Gestão de Recursos Humanos
# 8: Contabilidade e Finanças
perguntas_para_acrescentar = [
    # --- 1: Informática e Sistemas de Informação ---
    (1, 'Especialidade', 'O que é "Big O notation"?', 'Uma forma de escrever código', 'Uma medida da complexidade de um algoritmo', 'Um tipo de base de dados', 'Um protocolo de rede', 'B'),
    (1, 'Especialidade', 'Qual a principal diferença entre um processo e uma thread?', 'Threads partilham o mesmo espaço de memória, processos não', 'Processos são mais rápidos', 'Threads não podem ser interrompidas', 'Não há diferença', 'A'),
    (1, 'Especialidade', 'O que faz o comando `git clone`?', 'Cria um novo branch', 'Envia alterações para o repositório remoto', 'Cria uma cópia local de um repositório remoto', 'Resolve conflitos de merge', 'C'),
    (1, 'Especialidade', 'Qual estrutura de dados utiliza o princípio LIFO (Last-In, First-Out)?', 'Fila (Queue)', 'Lista Ligada', 'Árvore', 'Pilha (Stack)', 'D'),
    (1, 'Especialidade', 'O que é um "ataque de phishing"?', 'Um ataque que sobrecarrega um servidor', 'Uma tentativa de enganar um utilizador para que revele informações sensíveis', 'Um vírus que encripta ficheiros', 'Uma falha de hardware', 'B'),
    (1, 'Matemática', 'Qual é o valor de 5! (fatorial de 5)?', '120', '25', '50', '100', 'A'),
    (1, 'Matemática', 'A soma dos ângulos internos de um triângulo é sempre:', '90 graus', '180 graus', '360 graus', 'Depende do triângulo', 'B'),
    (1, 'Matemática', 'Qual é o resultado de (A ∩ B) se A={1,2,3} e B={3,4,5}?', '{3}', '{1,2,3,4,5}', '{}', '{1,2,4,5}', 'A'),
    (1, 'Matemática', 'Num sistema de coordenadas cartesianas, o ponto (0,0) é chamado de:', 'Eixo X', 'Eixo Y', 'Origem', 'Quadrante', 'C'),
    (1, 'Matemática', 'Se a probabilidade de um evento A é 0.4 e de B é 0.5, e são independentes, qual a P(A e B)?', '0.9', '0.1', '0.2', 'Não se pode calcular', 'C'),
    (1, 'Lógica', 'Se um programa compila sem erros, significa que ele está livre de bugs?', 'Sim, está perfeito', 'Não, podem existir erros lógicos', 'Sim, mas apenas em Windows', 'Não, significa que a sintaxe está correta', 'D'),
    (1, 'Lógica', 'A Lei de Moore afirma que:', 'A velocidade da luz é constante', 'O número de transístores num chip duplica aproximadamente a cada dois anos', 'Todo o programa pode ser escrito com 3 estruturas básicas', 'A internet fica mais rápida a cada ano', 'B'),
    (1, 'Lógica', 'Se um utilizador diz "o sistema está lento", qual o primeiro passo lógico de um técnico?', 'Reiniciar o servidor', 'Formatar o computador do utilizador', 'Pedir mais detalhes sobre o que está lento e quando acontece', 'Ignorar a reclamação', 'C'),
    (1, 'Lógica', 'Se uma firewall bloqueia todas as portas exceto a 443, que tráfego é permitido?', 'Email (SMTP)', 'Acesso remoto (SSH)', 'Navegação segura (HTTPS)', 'Transferência de ficheiros (FTP)', 'C'),
    (1, 'Lógica', 'Se "todos os programadores gostam de café" e "Ana não gosta de café", o que podemos concluir?', 'Ana é programadora', 'Ana não é programadora', 'Ana gosta de chá', 'Café faz mal', 'B'),

    # --- 2: Redes e Telecomunicações ---
    (2, 'Especialidade', 'Qual a principal função de um Access Point (AP)?', 'Atribuir IPs', 'Ligar uma rede local a outra', 'Converter um sinal com fios para um sinal sem fios (Wi-Fi)', 'Filtrar tráfego', 'C'),
    (2, 'Especialidade', 'O que é um "servidor proxy"?', 'Um servidor de email', 'Um intermediário que faz pedidos em nome de outros clientes', 'Um servidor de ficheiros', 'Um antivírus de rede', 'B'),
    (2, 'Especialidade', 'O que é um "VLAN" (Virtual LAN)?', 'Uma rede sem fios', 'Uma forma de segmentar logicamente uma rede física em múltiplas redes virtuais', 'Um tipo de cabo de rede', 'Uma rede muito rápida', 'B'),
    (2, 'Especialidade', 'Qual o objetivo de usar "pares trançados" (twisted pair) em cabos de rede?', 'Aumentar a distância do cabo', 'Tornar o cabo mais flexível', 'Reduzir a interferência eletromagnética', 'Permitir mais velocidade', 'C'),
    (2, 'Especialidade', 'A modulação QAM (Quadrature Amplitude Modulation) altera quais propriedades do sinal?', 'Apenas a frequência', 'Apenas a fase', 'Apenas a amplitude', 'A amplitude e a fase', 'D'),
    (2, 'Matemática', 'Se um sinal perde 10 dB de potência, a sua potência é reduzida por um fator de:', '2', '5', '10', '100', 'C'),
    (2, 'Matemática', 'Um sinal tem uma largura de banda de 5 MHz. Qual é este valor em kHz?', '50 kHz', '500 kHz', '5000 kHz', '50000 kHz', 'C'),
    (2, 'Matemática', 'Qual o resultado da operação binária 1010 AND 1100?', '1000', '1110', '1010', '0100', 'A'),
    (2, 'Matemática', 'Se a velocidade da luz é 3x10^8 m/s, quanto tempo leva um sinal a percorrer 300 km?', '1 segundo', '1 milissegundo', '1 microssegundo', '10 segundos', 'B'),
    (2, 'Matemática', 'Um sinal tem uma frequência de 100 Hz. Qual é o seu período?', '100 s', '10 s', '0.1 s', '0.01 s', 'D'),
    (2, 'Lógica', 'Se um ping para um servidor falha, mas o traceroute mostra que o sinal chega até ao router antes do servidor, onde está o problema mais provável?', 'No seu computador', 'No seu router', 'No servidor ou na sua ligação direta', 'Na internet em geral', 'C'),
    (2, 'Lógica', 'A regra é: "A porta 22 é para SSH". Se um serviço está a correr na porta 22, que serviço é?', 'HTTP', 'FTP', 'Email', 'SSH', 'D'),
    (2, 'Lógica', 'Se um cabo de rede está a funcionar a 100 Mbps em vez de 1 Gbps, qual é a causa mais provável?', 'O cabo está desligado', 'O computador está lento', 'Um dos dispositivos ou o cabo não suporta a velocidade de 1 Gbps', 'Falta de energia', 'C'),
    (2, 'Lógica', 'Se um utilizador não consegue aceder a nenhum site, mas consegue fazer ping a 8.8.8.8, qual é o problema mais provável?', 'O cabo de rede está desligado', 'O router está desligado', 'Problema com o servidor de DNS', 'O browser está desatualizado', 'C'),
    (2, 'Lógica', 'Se uma antena é direcional, significa que:', 'Funciona em todas as direções', 'Concentra o sinal numa direção específica', 'Não precisa de energia', 'É à prova de água', 'B'),

    # --- 3: Ciências Criminais ---
    (3, 'Especialidade', 'O que é a "cadeia de custódia" da prova?', 'O processo de prender um suspeito', 'O registo documentado de manuseamento da prova', 'O caminho que a vítima faz até ao tribunal', 'A ordem das testemunhas no julgamento', 'B'),
    (3, 'Especialidade', 'Qual o papel do perito criminal no processo?', 'Defender o acusado', 'Acusar o réu', 'Analisar vestígios e elaborar laudos técnicos', 'Julgar o caso', 'C'),
    (3, 'Especialidade', 'O que distingue um crime consumado de um crime tentado?', 'A intenção do agente', 'A gravidade da pena', 'A ocorrência do resultado final pretendido', 'O número de vítimas', 'C'),
    (3, 'Especialidade', 'A "vitimologia" estuda principalmente:', 'As leis', 'As penas', 'O criminoso', 'A vítima e o seu papel no evento criminal', 'D'),
    (3, 'Especialidade', 'O que é um "crime de colarinho branco"?', 'Um crime cometido com uma arma branca', 'Um crime financeiro não violento cometido por pessoas de alta posição social', 'Um crime cometido por um desconhecido', 'Um crime sem solução', 'B'),
    (3, 'Língua Portuguesa', 'Qual a função do "vocativo" numa frase?', 'Indicar o sujeito', 'Chamar ou interpelar o interlocutor', 'Dar uma qualidade', 'Indicar uma ação', 'B'),
    (3, 'Língua Portuguesa', 'A palavra "jurisprudência" é um exemplo de:', 'Substantivo simples', 'Substantivo composto', 'Adjetivo', 'Verbo', 'A'),
    (3, 'Língua Portuguesa', 'Qual a forma correta do plural de "guarda-civil"?', 'Guardas-civil', 'Guarda-civis', 'Guardas-civis', 'Guardas-civis', 'D'),
    (3, 'Língua Portuguesa', 'Na frase "A prova pericial foi conclusiva", o termo "pericial" é um:', 'Advérbio', 'Substantivo', 'Adjetivo', 'Pronome', 'C'),
    (3, 'Língua Portuguesa', 'O que significa a expressão "letra morta" no contexto jurídico?', 'Uma lei antiga', 'Uma lei que não é aplicada ou cumprida', 'Um documento ilegível', 'Uma lei revogada', 'B'),
    (3, 'Lógica', 'Se todas as provas apontam para A, mas A tem um álibi confirmado, qual a conclusão lógica?', 'A é culpado mesmo assim', 'O álibi é falso', 'As provas devem ser reavaliadas', 'Não há conclusão possível', 'C'),
    (3, 'Lógica', 'Se um suspeito diz "Eu estava em casa ou no cinema", e a investigação prova que ele não estava em casa, então:', 'Ele estava no cinema', 'Ele estava em casa', 'Ele mentiu sobre tudo', 'Não se pode concluir nada', 'A'),
    (3, 'Lógica', 'A regra é: "Para cometer o crime, era preciso ter a chave". O suspeito não tinha a chave. Conclusão:', 'O suspeito é inocente', 'O suspeito é culpado', 'A regra está errada', 'O suspeito usou outra chave', 'A'),
    (3, 'Lógica', 'Se a testemunha A contradiz a testemunha B, o que um investigador deve fazer?', 'Acreditar em A', 'Acreditar em B', 'Descartar ambos os depoimentos', 'Procurar uma terceira prova para validar um dos depoimentos', 'D'),
    (3, 'Lógica', 'Se um crime ocorre entre as 14h e as 15h, e o suspeito só chegou à cidade às 16h, ele pode ser o autor?', 'Sim', 'Não', 'Talvez', 'Depende do crime', 'B'),

    # --- 4: Direito ---
    (4, 'Especialidade', 'O que é "Jurisprudência"?', 'O estudo das leis de um país', 'O conjunto de decisões e interpretações reiteradas dos tribunais', 'A carreira de um juiz', 'Um tipo de contrato legal', 'B'),
    (4, 'Especialidade', 'Qual o ramo do direito que regula as relações de trabalho?', 'Direito Civil', 'Direito Comercial', 'Direito do Trabalho', 'Direito Administrativo', 'C'),
    (4, 'Especialidade', 'O que é uma "petição"?', 'Uma ordem judicial', 'Um documento escrito dirigido a uma autoridade para fazer um pedido ou apresentar uma queixa', 'Uma reunião de advogados', 'A decisão final de um juiz', 'B'),
    (4, 'Especialidade', 'O que significa "trânsito em julgado" de uma decisão?', 'Que a decisão foi publicada', 'Que a decisão foi adiada', 'Que da decisão já não se pode recorrer', 'Que a decisão foi anulada', 'C'),
    (4, 'Especialidade', 'Qual a principal função de um notário?', 'Defender clientes em tribunal', 'Dar fé pública a documentos e atos', 'Investigar crimes', 'Julgar processos', 'B'),
    (4, 'Língua Portuguesa', 'Qual o significado do termo jurídico "acórdão"?', 'Um acordo entre as partes', 'A decisão de um tribunal coletivo', 'A lei principal de um país', 'Um contrato assinado', 'B'),
    (4, 'Língua Portuguesa', 'A expressão latina "in flagrante delicto" significa:', 'No final do processo', 'Em segredo de justiça', 'No ato de cometer o crime', 'Após a sentença', 'C'),
    (4, 'Língua Portuguesa', 'Qual a regência correta do verbo "visar" no sentido de "objetivar"?', 'Visar ao cargo', 'Visar o cargo', 'Visar no cargo', 'Visar pelo cargo', 'B'),
    (4, 'Língua Portuguesa', 'A palavra "advocacia" é um exemplo de substantivo:', 'Concreto', 'Primitivo', 'Simples', 'Abstrato', 'D'),
    (4, 'Língua Portuguesa', 'Qual das frases utiliza a colocação pronominal corretamente?', 'Me parece correto.', 'Eu darei-te a resposta.', 'Nunca enganei-te.', 'Não se preocupe com isso.', 'D'),
    (4, 'Lógica', 'O argumento "Se chove, a rua fica molhada. A rua está molhada. Logo, choveu." é um exemplo de:', 'Modus Ponens (válido)', 'Falácia da afirmação do consequente (inválido)', 'Modus Tollens (válido)', 'Negação do antecedente (inválido)', 'B'),
    (4, 'Lógica', 'Se uma lei proíbe veículos no parque, uma bicicleta é permitida?', 'Sim', 'Não', 'Depende da interpretação da palavra "veículo"', 'Apenas se for de criança', 'C'),
    (4, 'Lógica', 'Se o Contrato A é válido e o Contrato B depende da validade do A, o que acontece se o A for anulado?', 'O contrato B continua válido', 'O contrato B é automaticamente anulado', 'O contrato B precisa de ser renegociado', 'Nada acontece ao B', 'B'),
    (4, 'Lógica', 'A lei diz: "Cidadãos com mais de 18 anos podem votar". João tem 18 anos. Ele pode votar?', 'Não', 'Sim', 'Apenas no próximo ano', 'Depende se a lei é inclusiva ou exclusiva', 'D'),
    (4, 'Lógica', 'Se uma testemunha é simultaneamente familiar do réu, o seu testemunho é:', 'Automaticamente falso', 'Considerado com maior peso', 'Analisado considerando um potencial viés', 'Completamente irrelevante', 'C'),

    # --- 5: Hotelaria e Turismo ---
    (5, 'Especialidade', 'Qual a função de um "concierge" num hotel?', 'Limpar os quartos', 'Cozinhar', 'Assistir os hóspedes com reservas e informações', 'Gerir as finanças', 'C'),
    (5, 'Especialidade', 'O que significa "all-inclusive" num resort?', 'Apenas o pequeno-almoço está incluído', 'Todas as refeições e bebidas estão incluídas no preço', 'O voo está incluído', 'O acesso à piscina é pago à parte', 'B'),
    (5, 'Especialidade', 'A sigla "UNESCO" está associada a que tipo de locais turísticos?', 'Parques de diversões', 'Praias', 'Património Mundial cultural e natural', 'Centros comerciais', 'C'),
    (5, 'Especialidade', 'O que é um "hostel"?', 'Um hotel de 5 estrelas', 'Um tipo de alojamento mais económico com quartos partilhados', 'Um restaurante', 'Uma agência de viagens', 'B'),
    (5, 'Especialidade', 'O que é a "taxa de ocupação" de um hotel?', 'O preço por noite', 'A percentagem de quartos ocupados num determinado período', 'O número de funcionários', 'A classificação do hotel', 'B'),
    (5, 'Língua Portuguesa', 'Qual o plural correto de "guarda-sol"?', 'Guarda-sóis', 'Guardas-sol', 'Guardas-sóis', 'Guarda-soles', 'A'),
    (5, 'Língua Portuguesa', 'Na frase "O turista ficou satisfeito", a palavra "satisfeito" é um:', 'Verbo', 'Substantivo', 'Advérbio', 'Adjetivo', 'D'),
    (5, 'Língua Portuguesa', 'A expressão "pôr os pontos nos is" significa:', 'Escrever corretamente', 'Ser muito detalhado e esclarecer tudo', 'Pontuar um texto', 'Começar uma discussão', 'B'),
    (5, 'Língua Portuguesa', 'Qual a grafia correta?', 'Excurssão', 'Excursão', 'Escurssão', 'Escursão', 'B'),
    (5, 'Língua Portuguesa', 'Um guia turístico que fala de forma clara e cativante tem boa:', 'Dicção', 'Discrição', 'Dedução', 'Descrição', 'A'),
    (5, 'Lógica', 'Se um cliente quer um quarto com vista para o mar E uma varanda, e o único quarto disponível só tem varanda, o cliente ficará satisfeito?', 'Sim', 'Não', 'Talvez', 'Depende do preço', 'B'),
    (5, 'Lógica', 'Um grupo de 30 turistas precisa de ser transportado em carrinhas de 8 lugares. Quantas carrinhas são necessárias no mínimo?', '3', '4', '5', '6', 'B'),
    (5, 'Lógica', 'Se um pequeno-almoço é servido das 7h às 10h, um hóspede que chega às 10:05 tem direito a ele?', 'Sim', 'Não', 'Depende da tolerância do hotel', 'Apenas se pagar extra', 'B'),
    (5, 'Lógica', 'Se a reserva não está no sistema, o que deve o rececionista fazer primeiro?', 'Mandar o cliente embora', 'Pedir o comprovativo da reserva ao cliente', 'Dar um quarto qualquer', 'Chamar a segurança', 'B'),
    (5, 'Lógica', 'Se a piscina está aberta quando não chove, e hoje está a chover, a piscina está:', 'Aberta', 'Fechada', 'Em manutenção', 'Não se pode concluir com certeza', 'D'),

    # --- 6: Logística e Gestão Comercial ---
    (6, 'Especialidade', 'O que significa o termo "SKU" (Stock Keeping Unit)?', 'O peso de um produto', 'Um código único para identificar um produto específico no inventário', 'O nome do fornecedor', 'A data de validade', 'B'),
    (6, 'Especialidade', 'Qual o principal objetivo da gestão de stocks?', 'Ter o máximo de produtos possível', 'Equilibrar o custo de manter stock com o risco de rutura', 'Vender tudo rapidamente', 'Comprar sempre em grandes quantidades', 'B'),
    (6, 'Especialidade', 'O que é um "incoterm"?', 'Um tipo de contrato de transporte', 'Termos comerciais internacionais que definem as responsabilidades de vendedores e compradores', 'Uma taxa de alfândega', 'Um software de logística', 'B'),
    (6, 'Especialidade', 'Qual a função de um "centro de distribuição"?', 'Fabricar produtos', 'Otimizar o armazenamento e o envio de mercadorias para os pontos de venda', 'Vender diretamente ao consumidor', 'Apenas guardar produtos', 'B'),
    (6, 'Especialidade', 'O que é "cross-docking"?', 'Um tipo de empilhadora', 'Uma técnica logística onde os produtos são descarregados e enviados diretamente, com pouco ou nenhum armazenamento', 'Atravessar uma doca a nadar', 'Inspecionar a mercadoria', 'B'),
    (6, 'Matemática', 'Se um contentor tem capacidade para 2.000 caixas e já está 80% cheio, quantas caixas ainda cabem?', '200', '400', '500', '600', 'B'),
    (6, 'Matemática', 'Uma palete mede 1.2m x 1.0m. Qual a sua área em metros quadrados?', '1.2 m²', '2.2 m²', '12 m²', '120 m²', 'A'),
    (6, 'Matemática', 'Um camião viaja a uma velocidade média de 60 km/h. Quanto tempo levará para percorrer 210 km?', '3 horas', '3 horas e 30 minutos', '4 horas', '4 horas e 15 minutos', 'B'),
    (6, 'Matemática', 'Se o custo de um produto é 150 Kz e a margem de lucro desejada é de 30% sobre o custo, qual o preço de venda?', '180 Kz', '195 Kz', '200 Kz', '210 Kz', 'B'),
    (6, 'Matemática', 'Um armazém tem 5 corredores com 20 prateleiras cada. Quantas prateleiras existem no total?', '25', '100', '150', '200', 'B'),
    (6, 'Lógica', 'Se o produto A tem de ser entregue antes do B, e o C depois do B, qual é a ordem correta?', 'A, C, B', 'C, B, A', 'B, A, C', 'A, B, C', 'D'),
    (6, 'Lógica', 'Se um fornecedor diz "A entrega será feita na terça OU na quarta", e a entrega não foi feita na terça, quando será feita?', 'Na segunda', 'Na quarta', 'Na quinta', 'Não se sabe', 'B'),
    (6, 'Lógica', 'A regra é: "Produtos frágeis devem ir no topo". Um copo de vidro é frágil. Onde deve ser colocado?', 'Em baixo', 'No meio', 'No topo', 'Em qualquer lugar', 'C'),
    (6, 'Lógica', 'Se um cliente reclama que o seu produto não chegou, qual o primeiro passo lógico?', 'Ignorar a reclamação', 'Enviar um novo produto imediatamente', 'Verificar o estado do envio com o número de rastreamento', 'Cancelar a encomenda', 'C'),
    (6, 'Lógica', 'Se "nenhum produto defeituoso é enviado" e "este produto foi enviado", qual a conclusão?', 'Este produto é defeituoso', 'Este produto não é defeituoso', 'Todos os produtos são perfeitos', 'O sistema de envio falhou', 'B'),

    # --- 7: Gestão de Recursos Humanos ---
    (7, 'Especialidade', 'A "avaliação 360 graus" é um método em que o funcionário é avaliado por:', 'Apenas pelo chefe', 'Apenas por si mesmo', 'Pelo chefe, colegas, subordinados e por si mesmo', 'Apenas pelos clientes', 'C'),
    (7, 'Especialidade', 'A "descrição de funções" de um cargo deve incluir:', 'Apenas o salário', 'As principais tarefas, responsabilidades e requisitos do cargo', 'O nome do chefe', 'O horário de almoço', 'B'),
    (7, 'Especialidade', 'A "gestão por competências" foca-se em:', 'Apenas na idade dos funcionários', 'Identificar e desenvolver as competências necessárias para o sucesso da empresa', 'Controlar o ponto', 'Organizar as festas da empresa', 'B'),
    (7, 'Especialidade', 'A "Lei Geral do Trabalho" em Angola serve para:', 'Regular apenas os despedimentos', 'Regular as relações jurídicas de trabalho', 'Definir os feriados', 'Aumentar os salários', 'B'),
    (7, 'Especialidade', 'O que significa "turnover" em Recursos Humanos?', 'A faturação da empresa', 'A taxa de rotatividade de funcionários (entradas e saídas)', 'O lucro por funcionário', 'O número de horas extra', 'B'),
    (7, 'Língua Portuguesa', 'A concordância nominal está correta em:', 'É proibido a entrada', 'É proibida a entrada', 'É proibido entrada de pessoas', 'É proibida entrada', 'B'),
    (7, 'Língua Portuguesa', 'A figura de estilo presente em "carregar o mundo nas costas" para descrever excesso de trabalho é uma:', 'Metáfora', 'Comparação', 'Hipérbole', 'Eufemismo', 'C'),
    (7, 'Língua Portuguesa', 'A frase "Os trabalhadores, que são dedicados, merecem um bónus" contém uma oração subordinada:', 'Adverbial', 'Adjetiva explicativa', 'Adjetiva restritiva', 'Substantiva', 'B'),
    (7, 'Língua Portuguesa', 'Qual a grafia correta?', 'Empresa multinassional', 'Empresa multinasional', 'Empresa multinacional', 'Empresa multinassional', 'C'),
    (7, 'Língua Portuguesa', 'Um email formal a comunicar uma decisão a toda a empresa é um exemplo de texto:', 'Literário', 'Jornalístico', 'Informativo', 'Publicitário', 'C'),
    (7, 'Lógica', 'A regra é: "Para ser promovido, é preciso ter boa avaliação E atingir as metas". Se um funcionário não atinge as metas, ele será promovido?', 'Sim, se tiver boa avaliação', 'Não, porque um dos requisitos falhou', 'Talvez, se o chefe gostar dele', 'Sim, se trabalhar há muito tempo', 'B'),
    (7, 'Lógica', 'Se um candidato diz "Tenho experiência em A ou B", e a empresa só valoriza a experiência em A, o candidato é adequado?', 'Sim, sempre', 'Não, nunca', 'Talvez, se a experiência em B for irrelevante', 'Depende se ele também tem experiência em A', 'D'),
    (7, 'Lógica', 'Se 2 gestores de RH entrevistam 10 candidatos em 5 horas, quantos candidatos cada um entrevista por hora?', '1', '2', '5', '10', 'A'),
    (7, 'Lógica', 'Se "todos os funcionários motivados são produtivos" e "Ana é produtiva", podemos concluir que Ana está motivada?', 'Sim', 'Não, é uma falácia (afirmação do consequente)', 'Sim, porque a produtividade causa motivação', 'Não, porque Ana pode ser uma máquina', 'B'),
    (7, 'Lógica', 'Numa equipa de 5 pessoas, quantas duplas diferentes podem ser formadas para um projeto?', '5', '10', '15', '20', 'B'),

    # --- 8: Contabilidade e Finanças ---
    (8, 'Especialidade', 'O que é o "Ponto de Equilíbrio" (Break-Even Point)?', 'O ponto de lucro máximo', 'O ponto onde as receitas totais igualam os custos totais', 'O final do ano fiscal', 'O início da atividade da empresa', 'B'),
    (8, 'Especialidade', 'Qual a principal função de uma auditoria financeira?', 'Encontrar fraudes', 'Verificar a conformidade e a fidedignidade das demonstrações financeiras', 'Preparar os impostos', 'Aconselhar investimentos', 'B'),
    (8, 'Especialidade', 'O que é "depreciação"?', 'A perda de valor de um ativo ao longo do tempo', 'Um aumento de capital', 'Um tipo de imposto', 'O lucro da empresa', 'A'),
    (8, 'Especialidade', 'Qual destes é um exemplo de um "custo fixo"?', 'Matéria-prima', 'Comissões de vendas', 'Aluguer do escritório', 'Eletricidade da fábrica', 'C'),
    (8, 'Especialidade', 'O que é o "fluxo de caixa" (cash flow)?', 'O dinheiro guardado no cofre', 'O movimento de entradas e saídas de dinheiro da empresa', 'O lucro total', 'As dívidas da empresa', 'B'),
    (8, 'Matemática', 'Se uma fatura de 20.000 Kz tem um desconto de 5%, qual o valor a pagar?', '18.000 Kz', '19.000 Kz', '19.500 Kz', '18.500 Kz', 'B'),
    (8, 'Matemática', 'Calcular juros simples sobre 50.000 Kz a uma taxa de 10% ao ano, durante 3 anos.', '5.000 Kz', '10.000 Kz', '15.000 Kz', '16.550 Kz', 'C'),
    (8, 'Matemática', 'Se o lucro de uma empresa foi de 80.000 Kz e a receita foi de 400.000 Kz, qual a margem de lucro?', '15%', '20%', '25%', '30%', 'B'),
    (8, 'Matemática', 'Um ativo foi comprado por 10.000 Kz e vendido por 12.500 Kz. Qual foi o retorno sobre o investimento (ROI)?', '12.5%', '20%', '25%', '50%', 'C'),
    (8, 'Matemática', 'Se o total de ativos é 150.000 Kz e o capital próprio é 60.000 Kz, qual o valor do passivo?', '90.000 Kz', '210.000 Kz', '60.000 Kz', 'Não se pode calcular', 'A'),
    (8, 'Lógica', 'Se as receitas são maiores que as despesas, a empresa tem lucro. A empresa teve prejuízo. O que podemos concluir?', 'As receitas foram maiores que as despesas', 'As receitas foram iguais às despesas', 'As receitas foram menores que as despesas', 'Não se pode concluir nada', 'C'),
    (8, 'Lógica', 'A regra é: "Todos os cheques acima de 100.000 Kz precisam de duas assinaturas". Um cheque de 50.000 Kz precisa de quantas assinaturas?', 'Duas', 'Uma', 'Nenhuma', 'Não se pode concluir pela regra', 'D'),
    (8, 'Lógica', 'Se o "ativo" é o oposto de "passivo", e "receita" é o oposto de "despesa", então "lucro" é o oposto de:', 'Investimento', 'Dívida', 'Prejuízo', 'Venda', 'C'),
    (8, 'Lógica', 'Se um auditor verifica a Fatura A, depois a B e depois a C, qual será a próxima a verificar?', 'A fatura A novamente', 'A fatura C novamente', 'A fatura D', 'Qualquer uma', 'C'),
    (8, 'Lógica', 'Se um relatório financeiro é "transparente", significa que ele é:', 'Invisível', 'Fácil de ler e compreender', 'Complicado', 'Escrito em vidro', 'B')
]

def popular_base_de_dados():
    """
    Adiciona novas perguntas à base de dados, evitando duplicados.
    """
    try:
        print("A tentar ligar à base de dados 'acesso'...")
        conn = mysql.connector.connect(**db_config)
        cursor = conn.cursor()
        print("Ligação bem-sucedida.")

        # 1. Buscar todos os enunciados existentes na base de dados
        cursor.execute("SELECT enunciado FROM perguntas")
        enunciados_existentes = {row[0] for row in cursor.fetchall()}
        print(f"Encontradas {len(enunciados_existentes)} perguntas existentes na base de dados.")

        # 2. Preparar a query de inserção
        query = """
            INSERT INTO perguntas 
            (teste_id, categoria, enunciado, opcao_a, opcao_b, opcao_c, opcao_d, resposta_correta) 
            VALUES (%s, %s, %s, %s, %s, %s, %s, %s)
        """
        
        perguntas_para_inserir = []
        perguntas_ignoradas = 0

        # 3. Filtrar as perguntas, adicionando apenas as que não existem
        for pergunta in perguntas_para_acrescentar:
            enunciado = pergunta[2]
            if enunciado not in enunciados_existentes:
                perguntas_para_inserir.append(pergunta)
                # Adiciona ao set para não tentar inserir a mesma pergunta duas vezes nesta execução
                enunciados_existentes.add(enunciado)
            else:
                perguntas_ignoradas += 1
        
        # 4. Inserir as novas perguntas (se houver alguma)
        if perguntas_para_inserir:
            cursor.executemany(query, perguntas_para_inserir)
            conn.commit()
            print(f"\nSUCESSO! {cursor.rowcount} novas perguntas foram inseridas.")
        else:
            print("\nNenhuma pergunta nova para inserir.")

        if perguntas_ignoradas > 0:
            print(f"{perguntas_ignoradas} perguntas da lista já existiam e foram ignoradas.")

    except mysql.connector.Error as err:
        print(f"\nERRO: Ocorreu um erro ao popular a base de dados: {err}")
    finally:
        if 'conn' in locals() and conn.is_connected():
            cursor.close()
            conn.close()
            print("Ligação à base de dados fechada.")

if __name__ == '__main__':
    popular_base_de_dados()
