Para resolver esta demanda, elaborei um pseudo-algoritmo em linguagem natural de forma que ficasse mais próximo de execução por máquina, considerei fazer a lógica com validações antes de executar as etapas de forma automatizada pra evitar erros silenciosos ou barulhentos, dando mais confiabilidade e garantia de que cada etapa só acontece quando as condições realmente são atendidas:
// INÍCIO
ler evento_nome
ler inicio_evento
ler fim_evento
tolerancia = 5
para cada participante em lista_participantes faça
ler nome
ler email
ler status_conta
ler hora_entrada
ler hora_saida
// validações básicas
se (email estiver vazio) OU (status_conta == "INATIVO") então
continuar para o próximo participante
fim_se
se (hora_entrada estiver vazia) OU (hora_saida estiver vazia) então
continuar para o próximo participante
fim_se
se (hora_entrada > hora_saida) então
continuar para o próximo participante
fim_se
// regra de presença completa
se (hora_entrada <= inicio_evento + tolerancia) E (hora_saida >= fim_evento - tolerancia) então
enviar_email_agradecimento(email, evento_nome)
fim_se
fim_para
// FIM