Uma forma adequada de estruturar esse problema é pensar no algoritmo como um fluxo lógico que parte de dados bem definidos, aplica uma verificação objetiva e executa uma ação condicional.
Primeiramente, é necessário definir os dados de entrada. O algoritmo deve receber: (i) a lista de participantes do evento, contendo pelo menos nome e e-mail; (ii) os registros de acesso de cada participante (logs de entrada e saída na transmissão); e (iii) o horário oficial de início e término da live. Esses dados são essenciais para que seja possível verificar o comportamento de cada usuário durante o evento.
Em seguida, o algoritmo deve percorrer a lista de participantes, analisando individualmente cada pessoa. Para cada participante, ele deve recuperar seus registros de acesso e comparar com o período total da transmissão. A lógica de verificação consiste em identificar se o participante entrou até o início (ou próximo dele, considerando uma tolerância, se necessário) e permaneceu conectado até o final. Alternativamente, pode-se calcular o tempo total de permanência e verificar se ele corresponde a 100% (ou a um percentual mínimo aceitável) da duração do evento.
A partir dessa verificação, o algoritmo precisa tomar uma decisão condicional:
Se o participante assistiu à transmissão completa, ele é elegível para receber o e-mail de agradecimento;
Caso contrário, ele não deve receber esse e-mail (ou poderia receber outro tipo de comunicação, se desejado).
Por fim, a ação final do algoritmo é acionar um serviço de envio de e-mails para todos os participantes que atenderam ao critério definido. Esse envio pode ser feito imediatamente após o processamento ou armazenado em uma fila para disparo em lote.
Em termos gerais, o algoritmo segue uma estrutura clássica: entrada de dados → processamento com iteração e condição → tomada de decisão → execução de ação. Essa organização garante clareza, escalabilidade e facilidade de manutenção, além de permitir ajustes futuros, como inclusão de regras de tolerância ou personalização das mensagens.