Dados necessários para a realização do algoritmo.
- Lista de convidados da reunião.
- Data e Hora do início e do final da reunião.
- Criar um checkpoint do início da reunião para saber, quem da lista de convidados, está presente no momento que a reunião inicia.
- A cada X tempo verificar novamente se o candidato está presente na reunião.
- Criar um checkpoint final do fim da reunião considerando quais Convidados ainda estão presentes.
Passo a passo:
- Calcular o tempo total de reunião.
- Criar um looping lendo cada Convidado e o status de cada checkpoint realizado para o mesmo.
- Realizar o somatório do tempo de cada Convidado com base nesses checkpoints.
- Caso o somatório dos checkpoints (tempo total assistido pelo Convidado) seja igual ao tempo total de reunião, enviar o e-mail de agradecimento.
- Senão, a pessoa não recebe notificação.
Eu colocaria uma porcentagem em cima desse tempo total (entre 80% e 90% do tempo total). Dessa forma daria pra ser mais brando com questão de pequenos atrasos ou alguma intermitência de sinal de interneet que fizesse o convidado cair ou se ausentar por um tempo.