import 'package:flutter/material.dart'; import 'quiz_question_screen.dart'; import 'quiz_result.dart'; // Quiz 1: Tipos de Escova (antiga Quiz 6) class Quiz1Screen extends StatelessWidget { const Quiz1Screen({super.key, this.currentScore = 0, this.scopeId}); final int currentScore; final String? scopeId; @override Widget build(BuildContext context) { return QuizQuestionScreen( title: 'Quiz 1/20', question: 'Qual tipo de escova é mais recomendada para crianças?', answers: const [ QuizAnswer( title: 'Escova macia com cabeça pequena', description: 'Escovas macias protegem a gengiva sensível das crianças e a cabeça pequena alcança melhor todos os dentes.', weight: 2, ), QuizAnswer( title: 'Escova dura para limpar melhor', description: 'Escovas duras podem machucar a gengiva e desgastar o esmalte dos dentes das crianças.', weight: 5, ), QuizAnswer( title: 'Escova elétrica sempre é melhor', description: 'Escova elétrica pode ajudar, mas não é essencial. O mais importante é a técnica e frequência.', weight: 3, ), ], currentScore: currentScore, nextRoute: (context, nextScore) => MaterialPageRoute( builder: (_) => Quiz2Screen(currentScore: nextScore, scopeId: scopeId), ), showBackButton: false, ); } } // Quiz 2: Alimentos que Causam Cáries (antiga Quiz 7) class Quiz2Screen extends StatelessWidget { const Quiz2Screen({super.key, required this.currentScore, this.scopeId}); final int currentScore; final String? scopeId; @override Widget build(BuildContext context) { return QuizQuestionScreen( title: 'Quiz 2/20', question: 'Qual alimento é mais prejudicial para os dentes?', answers: const [ QuizAnswer( title: 'Balas e chicletes pegajosos', description: 'Alimentos pegajosos ficam presos nos dentes por mais tempo, aumentando o risco de cáries.', weight: 2, ), QuizAnswer( title: 'Frutas frescas', description: 'Frutas são saudáveis, mas algumas são ácidas. O problema maior são os alimentos açucarados e pegajosos.', weight: 5, ), QuizAnswer( title: 'Vegetais crus', description: 'Vegetais são geralmente seguros para os dentes e muitos ajudam na limpeza natural.', weight: 3, ), ], currentScore: currentScore, nextRoute: (context, nextScore) => MaterialPageRoute( builder: (_) => Quiz3Screen(currentScore: nextScore, scopeId: scopeId), ), showBackButton: true, ); } } // Quiz 3: Primeira Visita ao Dentista (antiga Quiz 8) class Quiz3Screen extends StatelessWidget { const Quiz3Screen({super.key, required this.currentScore, this.scopeId}); final int currentScore; final String? scopeId; @override Widget build(BuildContext context) { return QuizQuestionScreen( title: 'Quiz 3/20', question: 'Qual a idade ideal para a primeira visita ao dentista?', answers: const [ QuizAnswer( title: 'A partir dos 1 ano de idade', description: 'O recomendado é levar ao dentista assim que o primeiro dentição aparecer ou até 1 ano.', weight: 2, ), QuizAnswer( title: 'Só depois dos 6 anos', description: 'Esperar demais pode permitir que problemas sérios se desenvolvam sem detecção precoce.', weight: 5, ), QuizAnswer( title: 'Apenas quando houver dor', description: 'Dor geralmente indica que o problema já está avançado. Prevenção é melhor que tratamento.', weight: 4, ), ], currentScore: currentScore, nextRoute: (context, nextScore) => MaterialPageRoute( builder: (_) => Quiz4Screen(currentScore: nextScore, scopeId: scopeId), ), showBackButton: true, ); } } // Quiz 4: Uso de Fio Dental (antiga Quiz 9) class Quiz4Screen extends StatelessWidget { const Quiz4Screen({super.key, required this.currentScore, this.scopeId}); final int currentScore; final String? scopeId; @override Widget build(BuildContext context) { return QuizQuestionScreen( title: 'Quiz 4/20', question: 'Com que frequência crianças devem usar fio dental?', answers: const [ QuizAnswer( title: 'Pelo menos uma vez ao dia', description: 'O uso diário de fio dental é importante para remover placa entre os dentes onde a escova não alcança.', weight: 2, ), QuizAnswer( title: 'Só quando os dentes estiverem muito juntos', description: 'Fio dental é necessário independentemente do espaçamento dos dentes para remover placa bacteriana.', weight: 5, ), QuizAnswer( title: 'Uma vez por semana é suficiente', description: 'Uso semanal é insuficiente. Placa bacteriana se forma diariamente e precisa ser removida.', weight: 4, ), ], currentScore: currentScore, nextRoute: (context, nextScore) => MaterialPageRoute( builder: (_) => Quiz5Screen(currentScore: nextScore, scopeId: scopeId), ), showBackButton: true, ); } } // Quiz 5: Flúor (antiga Quiz 10) class Quiz5Screen extends StatelessWidget { const Quiz5Screen({super.key, required this.currentScore, this.scopeId}); final int currentScore; final String? scopeId; @override Widget build(BuildContext context) { return QuizQuestionScreen( title: 'Quiz 5/20', question: 'O flúor é seguro para crianças?', answers: const [ QuizAnswer( title: 'Sim, na quantidade correta para cada idade', description: 'Flúor é seguro e eficaz quando usado nas quantidades recomendadas para cada faixa etária.', weight: 2, ), QuizAnswer( title: 'Não, deve ser evitado completamente', description: 'Flúor é essencial para prevenir cáries. O problema é o excesso, não o uso adequado.', weight: 5, ), QuizAnswer( title: 'Só necessário depois dos 12 anos', description: 'Flúor é importante em todas as idades, com ajuste na quantidade conforme a idade da criança.', weight: 4, ), ], currentScore: currentScore, nextRoute: (context, nextScore) => MaterialPageRoute( builder: (_) => Quiz6Screen(currentScore: nextScore, scopeId: scopeId), ), showBackButton: true, ); } } // Quiz 6: Chupetas e Mamadeiras (antiga Quiz 11) class Quiz6Screen extends StatelessWidget { const Quiz6Screen({super.key, required this.currentScore, this.scopeId}); final int currentScore; final String? scopeId; @override Widget build(BuildContext context) { return QuizQuestionScreen( title: 'Quiz 6/20', question: 'Até que idade é aceitável usar chupeta?', answers: const [ QuizAnswer( title: 'Até 2-3 anos, com desmame gradual', description: 'Após 2-3 anos, chupeta pode afetar o desenvolvimento da dentição e fala. O desmame deve ser gradual.', weight: 2, ), QuizAnswer( title: 'Até os 6 anos, não tem problema', description: 'Uso prolongado pode causar problemas na mordida e fala, além de dificultar o alinhamento dos dentes.', weight: 5, ), QuizAnswer( title: 'Só até 1 ano', description: 'Um ano pode ser muito cedo para algumas crianças. O importante é começar o desmame após 2 anos.', weight: 3, ), ], currentScore: currentScore, nextRoute: (context, nextScore) => MaterialPageRoute( builder: (_) => Quiz7Screen(currentScore: nextScore, scopeId: scopeId), ), showBackButton: true, ); } } // Quiz 7: Bebidas e Dentição (antiga Quiz 12) class Quiz7Screen extends StatelessWidget { const Quiz7Screen({super.key, required this.currentScore, this.scopeId}); final int currentScore; final String? scopeId; @override Widget build(BuildContext context) { return QuizQuestionScreen( title: 'Quiz 7/20', question: 'Qual bebida é mais prejudicial para os dentes das crianças?', answers: const [ QuizAnswer( title: 'Refrigerantes e sucos industrializados', description: 'Bebidas açucaradas e ácidas são as principais causas de cáries infantis, especialmente se consumidas frequentemente.', weight: 2, ), QuizAnswer( title: 'Leite e água', description: 'Leite e água são seguros para os dentes. O problema são bebidas açucaradas e ácidas.', weight: 5, ), QuizAnswer( title: 'Sucos naturais sem açúcar', description: 'Sucos naturais são melhores que industrializados, mas alguns são ácidos. Moderação é importante.', weight: 3, ), ], currentScore: currentScore, nextRoute: (context, nextScore) => MaterialPageRoute( builder: (_) => Quiz8Screen(currentScore: nextScore, scopeId: scopeId), ), showBackButton: true, ); } } // Quiz 8: Hábitos Noturnos (antiga Quiz 13) class Quiz8Screen extends StatelessWidget { const Quiz8Screen({super.key, required this.currentScore, this.scopeId}); final int currentScore; final String? scopeId; @override Widget build(BuildContext context) { return QuizQuestionScreen( title: 'Quiz 8/20', question: 'Crianças devem escovar os dentes antes de dormir?', answers: const [ QuizAnswer( title: 'Sim, é fundamental antes de dormir', description: 'Escovação noturna é crucial porque durante a noite a produção de saliva diminui, aumentando o risco de cáries.', weight: 2, ), QuizAnswer( title: 'Só se comeu doce', description: 'Placa bacteriana se acumula durante o dia independentemente do que foi comido. Escovação noturna é sempre necessária.', weight: 5, ), QuizAnswer( title: 'Não precisa se escovou durante o dia', description: 'Mesmo com escovação diurna, a noturna é essencial devido à redução de saliva durante o sono.', weight: 4, ), ], currentScore: currentScore, nextRoute: (context, nextScore) => MaterialPageRoute( builder: (_) => Quiz9Screen(currentScore: nextScore, scopeId: scopeId), ), showBackButton: true, ); } } // Quiz 9: Traumatismos Dentários (antiga Quiz 14) class Quiz9Screen extends StatelessWidget { const Quiz9Screen({super.key, required this.currentScore, this.scopeId}); final int currentScore; final String? scopeId; @override Widget build(BuildContext context) { return QuizQuestionScreen( title: 'Quiz 9/20', question: 'O que fazer se uma criança cair e quebrar um dente?', answers: const [ QuizAnswer( title: 'Procurar dentista imediatamente', description: 'Traumatismo dentário é emergência. Quanto mais rápido o atendimento, melhor o prognóstico.', weight: 2, ), QuizAnswer( title: 'Esperar alguns dias para observar', description: 'Esperar pode comprometer o tratamento. Dentes fraturados podem infectar ou morrer se não tratados.', weight: 5, ), QuizAnswer( title: 'Dar analgésico e observar', description: 'Analgésico pode ajudar com dor, mas não resolve o problema dentário que precisa de tratamento profissional.', weight: 4, ), ], currentScore: currentScore, nextRoute: (context, nextScore) => MaterialPageRoute( builder: (_) => Quiz10Screen(currentScore: nextScore, scopeId: scopeId), ), showBackButton: true, ); } } // Quiz 10: Selantes (antiga Quiz 15) class Quiz10Screen extends StatelessWidget { const Quiz10Screen({super.key, required this.currentScore, this.scopeId}); final int currentScore; final String? scopeId; @override Widget build(BuildContext context) { return QuizQuestionScreen( title: 'Quiz 10/20', question: 'Para que servem os selantes dentários?', answers: const [ QuizAnswer( title: 'Proteger contra cáries em dentes profundos', description: 'Selantes criam uma barreira protetora em sulcos e fissuras, locais difíceis de limpar e propensos a cáries.', weight: 2, ), QuizAnswer( title: 'Clarear os dentes', description: 'Selantes não têm função estética de clareamento, apenas protetora contra cáries.', weight: 5, ), QuizAnswer( title: 'Substituir a escovação', description: 'Selantes complementam a higiene, não substituem a escovação e o fio dental.', weight: 4, ), ], currentScore: currentScore, nextRoute: (context, nextScore) => MaterialPageRoute( builder: (_) => Quiz11Screen(currentScore: nextScore, scopeId: scopeId), ), showBackButton: true, ); } } // Quiz 11: Aparelhos Ortodônticos (antiga Quiz 16) class Quiz11Screen extends StatelessWidget { const Quiz11Screen({super.key, required this.currentScore, this.scopeId}); final int currentScore; final String? scopeId; @override Widget build(BuildContext context) { return QuizQuestionScreen( title: 'Quiz 11/20', question: 'Qual a melhor idade para avaliar necessidade de aparelho?', answers: const [ QuizAnswer( title: 'Entre 7-9 anos para avaliação', description: 'Avaliação precoce permite identificar problemas e planejar o melhor momento para intervenção.', weight: 2, ), QuizAnswer( title: 'Só depois dos 12 anos', description: 'Esperar demais pode perder a oportunidade de tratamento interceptativo que simplifica casos complexos.', weight: 5, ), QuizAnswer( title: 'Qualquer idade, não faz diferença', description: 'Existem momentos ideais para diferentes tipos de tratamento. Avaliação precoce é importante.', weight: 4, ), ], currentScore: currentScore, nextRoute: (context, nextScore) => MaterialPageRoute( builder: (_) => Quiz12Screen(currentScore: nextScore, scopeId: scopeId), ), showBackButton: true, ); } } // Quiz 12: Respiração Bucal (antiga Quiz 17) class Quiz12Screen extends StatelessWidget { const Quiz12Screen({super.key, required this.currentScore, this.scopeId}); final int currentScore; final String? scopeId; @override Widget build(BuildContext context) { return QuizQuestionScreen( title: 'Quiz 12/20', question: 'Respirar pela boca afeta os dentes?', answers: const [ QuizAnswer( title: 'Sim, pode causar vários problemas', description: 'Respiração bucal pode alterar o desenvolvimento facial, causar cáries e problemas ortodônticos.', weight: 2, ), QuizAnswer( title: 'Não, é apenas uma questão de hábito', description: 'Respiração bucal tem consequências reais na saúde bucal e desenvolvimento facial da criança.', weight: 5, ), QuizAnswer( title: 'Só afeta adultos, não crianças', description: 'Em crianças, os efeitos são mais sérios pois afetam o desenvolvimento dos ossos faciais.', weight: 4, ), ], currentScore: currentScore, nextRoute: (context, nextScore) => MaterialPageRoute( builder: (_) => Quiz13Screen(currentScore: nextScore, scopeId: scopeId), ), showBackButton: true, ); } } // Quiz 13: Gengivas (antiga Quiz 18) class Quiz13Screen extends StatelessWidget { const Quiz13Screen({super.key, required this.currentScore, this.scopeId}); final int currentScore; final String? scopeId; @override Widget build(BuildContext context) { return QuizQuestionScreen( title: 'Quiz 13/20', question: 'O que causa gengivas inflamadas em crianças?', answers: const [ QuizAnswer( title: 'Higiene inadequada e acúmulo de placa', description: 'Placa bacteriana não removida properly causa inflamação gengival, a forma mais comum de gengivite.', weight: 2, ), QuizAnswer( title: 'É normal na infância, não precisa tratar', description: 'Gengivite não é normal e precisa tratamento. Se não tratada, pode evoluir para periodontite.', weight: 5, ), QuizAnswer( title: 'Apenas mudanças hormonais', description: 'Hormônios podem influenciar, mas a causa principal é acúmulo de placa por higiene inadequada.', weight: 4, ), ], currentScore: currentScore, nextRoute: (context, nextScore) => MaterialPageRoute( builder: (_) => Quiz14Screen(currentScore: nextScore, scopeId: scopeId), ), showBackButton: true, ); } } // Quiz 14: Lanche Escolar (antiga Quiz 19) class Quiz14Screen extends StatelessWidget { const Quiz14Screen({super.key, required this.currentScore, this.scopeId}); final int currentScore; final String? scopeId; @override Widget build(BuildContext context) { return QuizQuestionScreen( title: 'Quiz 14/20', question: 'Qual lanche escolar é melhor para os dentes?', answers: const [ QuizAnswer( title: 'Frutas, queijo e água', description: 'Lanches naturais e sem açúcar são ideais. Queijo até ajuda neutralizar ácidos e fortalecer dentes.', weight: 2, ), QuizAnswer( title: 'Bolachas recheadas e suco de caixa', description: 'Lanches industrializados e açucarados são os principais vilões da saúde bucal escolar.', weight: 5, ), QuizAnswer( title: 'Salgadinhos de pacote', description: 'Salgadinhos são amiláceos e se transformam em açúcar, além de ficarem presos nos dentes.', weight: 4, ), ], currentScore: currentScore, nextRoute: (context, nextScore) => MaterialPageRoute( builder: (_) => Quiz15Screen(currentScore: nextScore, scopeId: scopeId), ), showBackButton: true, ); } } // Quiz 15: Medo do Dentista (antiga Quiz 20) class Quiz15Screen extends StatelessWidget { const Quiz15Screen({super.key, required this.currentScore, this.scopeId}); final int currentScore; final String? scopeId; @override Widget build(BuildContext context) { return QuizQuestionScreen( title: 'Quiz 15/20', question: 'Como lidar com o medo do dentista em crianças?', answers: const [ QuizAnswer( title: 'Conversar positivamente e visitar regularmente', description: 'Linguagem positiva e visitas frequentes sem necessidade de tratamento ajudam a criar confiança.', weight: 2, ), QuizAnswer( title: 'Evitar falar sobre dentista', description: 'Não falar sobre o assunto pode aumentar o medo. É importante preparar a criança positivamente.', weight: 5, ), QuizAnswer( title: 'Levar só quando houver problema', description: 'Visitas só em caso de problema associam dentista a dor. Visitas regulares preventivas são melhores.', weight: 4, ), ], currentScore: currentScore, nextRoute: (context, nextScore) => MaterialPageRoute( builder: (_) => Quiz16Screen(currentScore: nextScore, scopeId: scopeId), ), showBackButton: true, ); } } // Quiz 16: Tempo ideal para escovar (antiga Quiz 1) class Quiz16Screen extends StatelessWidget { const Quiz16Screen({super.key, required this.currentScore, this.scopeId}); final int currentScore; final String? scopeId; @override Widget build(BuildContext context) { return QuizQuestionScreen( title: 'Quiz 16/20', question: 'Qual é o tempo ideal para escovar os dentes?', answers: const [ QuizAnswer( title: 'Cerca de 2 minutos', description: 'O recomendado é escovar por aproximadamente 2 minutos, cobrindo todas as superfícies dos dentes e a linha da gengiva sem pressa.', weight: 2, ), QuizAnswer( title: 'Só 30 segundos, se fizer rápido', description: 'Muito pouco tempo costuma deixar placa bacteriana para trás, principalmente nos dentes de trás e perto da gengiva.', weight: 5, ), QuizAnswer( title: '5 minutos com força para "limpar bem"', description: 'Tempo demais e força excessiva podem irritar a gengiva e desgastar o esmalte. Prefira movimentos suaves e tempo adequado.', weight: 3, ), ], currentScore: currentScore, nextRoute: (context, nextScore) => MaterialPageRoute( builder: (_) => Quiz17Screen(currentScore: nextScore, scopeId: scopeId), ), showBackButton: true, ); } } // Quiz 17: Troca da escova (antiga Quiz 2) class Quiz17Screen extends StatelessWidget { const Quiz17Screen({super.key, required this.currentScore, this.scopeId}); final int currentScore; final String? scopeId; @override Widget build(BuildContext context) { return QuizQuestionScreen( title: 'Quiz 17/20', question: 'Quando devo trocar a escova de dentes?', answers: const [ QuizAnswer( title: 'A cada 3 meses (ou antes se estragar)', description: 'O ideal é trocar a cada ~3 meses. Se as cerdas abrirem antes, troque antes. Cerdas abertas limpam pior.', weight: 2, ), QuizAnswer( title: 'Só quando a escova "quebrar"', description: 'Esperar demais reduz a eficiência da escovação e pode acumular microrganismos na escova.', weight: 5, ), QuizAnswer( title: 'Todo mês, obrigatoriamente', description: 'Não é regra fixa. Um mês pode ser cedo demais se a escova estiver em bom estado. O principal é o estado das cerdas.', weight: 3, ), ], currentScore: currentScore, nextRoute: (context, nextScore) => MaterialPageRoute( builder: (_) => Quiz18Screen(currentScore: nextScore, scopeId: scopeId), ), showBackButton: true, ); } } // Quiz 18: Quantidade de pasta (antiga Quiz 3) class Quiz18Screen extends StatelessWidget { const Quiz18Screen({super.key, required this.currentScore, this.scopeId}); final int currentScore; final String? scopeId; @override Widget build(BuildContext context) { return QuizQuestionScreen( title: 'Quiz 18/20', question: 'Qual a quantidade ideal de pasta de dente para crianças?', answers: const [ QuizAnswer( title: 'Um grão de arroz (pequenos) / ervilha (maiores)', description: 'Para crianças pequenas, um "grão de arroz" já basta. Conforme cresce, pode ser do tamanho de uma ervilha. Isso ajuda a evitar excesso de flúor ingerido.', weight: 2, ), QuizAnswer( title: 'Cobrir toda a escova com pasta', description: 'Muito produto não significa melhor limpeza. Em crianças, aumenta o risco de engolir pasta em excesso.', weight: 5, ), QuizAnswer( title: 'Nenhuma pasta, só água', description: 'A pasta com flúor (na quantidade correta) ajuda a prevenir cáries. Em geral, água sozinha não oferece a mesma proteção.', weight: 3, ), ], currentScore: currentScore, nextRoute: (context, nextScore) => MaterialPageRoute( builder: (_) => Quiz19Screen(currentScore: nextScore, scopeId: scopeId), ), showBackButton: true, ); } } // Quiz 19: Fio dental (antiga Quiz 4) class Quiz19Screen extends StatelessWidget { const Quiz19Screen({super.key, required this.currentScore, this.scopeId}); final int currentScore; final String? scopeId; @override Widget build(BuildContext context) { return QuizQuestionScreen( title: 'Quiz 19/20', question: 'Qual é o melhor horário para usar fio dental?', answers: const [ QuizAnswer( title: 'Uma vez ao dia, com calma (geralmente à noite)', description: 'O importante é a frequência diária. À noite costuma ser mais fácil, pois remove restos e placa antes de dormir.', weight: 2, ), QuizAnswer( title: 'Só quando algo fica preso', description: 'O fio dental não serve apenas para tirar restos visíveis; ele remove placa bacteriana entre os dentes onde a escova não alcança.', weight: 5, ), QuizAnswer( title: 'Depois de toda refeição (obrigatório)', description: 'Pode ser útil em alguns casos, mas não é obrigatório para todos. O essencial é fazer bem feito ao menos 1x ao dia.', weight: 3, ), ], currentScore: currentScore, nextRoute: (context, nextScore) => MaterialPageRoute( builder: (_) => Quiz20Screen(currentScore: nextScore, scopeId: scopeId), ), showBackButton: true, ); } } // Quiz 20: Prevenção de cáries (antiga Quiz 5) class Quiz20Screen extends StatelessWidget { const Quiz20Screen({super.key, required this.currentScore, this.scopeId}); final int currentScore; final String? scopeId; @override Widget build(BuildContext context) { return QuizQuestionScreen( title: 'Quiz 20/20', question: 'O que ajuda mais a prevenir cáries no dia a dia?', answers: const [ QuizAnswer( title: 'Escovar + flúor + reduzir açúcar frequente', description: 'A prevenção é um conjunto: boa higiene com flúor e menos "beliscos" açucarados ao longo do dia.', weight: 2, ), QuizAnswer( title: 'Só enxaguante bucal', description: 'Enxaguante pode ajudar em alguns casos, mas não substitui escovação e fio dental.', weight: 3, ), QuizAnswer( title: 'Evitar completamente dentista', description: 'Consultas regulares são importantes para prevenção e orientação. O dentista também identifica problemas bem no começo.', weight: 5, ), ], currentScore: currentScore, nextRoute: (context, nextScore) => MaterialPageRoute( builder: (_) => QuizResultScreen(finalScore: nextScore, maxScore: 100, scopeId: scopeId), ), isFinal: true, showBackButton: true, ); } }