Oi, Lucas! Tudo certo?
Você tem razão: para o algoritmo funcionar, os dados precisam existir em algum lugar. No entanto, o "como" esses dados são coletados pode variar bastante dependendo da plataforma.
1. O Pré-registro (o caminho que você sugeriu)
Essa é a forma mais organizada. Quando a pessoa se inscreve, você já tem o e-mail e cria um identificador único (como o ID ou Token). No momento em que ela loga na transmissão, o sistema registra: "O usuário X entrou às 19h".
2. Logs da Plataforma de Transmissão
Muitas ferramentas (como Zoom, Teams ou YouTube Live para empresas) geram um relatório automático ao final do evento. Elas rastreiam o endereço de IP ou o login da conta e entregam uma tabela pronta com:
- Nome/E-mail
- Horário de entrada
- Horário de saída
Nesse caso, você não precisaria criar a base do zero; o seu algoritmo apenas "lê" esse arquivo gerado pela plataforma.
3. Check-in por Interação
Em eventos mais abertos, onde não há inscrição prévia, é comum usar um formulário de presença enviado no chat em um momento surpresa ou um "bot" que registra quem está logado no chat em intervalos de tempo (ex: a cada 5 minutos o sistema checa quem está online).
Refinando a lógica:
Para o seu desafio, imagine que a "Base de Dados" que você mencionou é a nossa Entrada. Independentemente de como o dado foi coletado, o algoritmo precisa que ele chegue estruturado assim:
| Participante | Início da transmissão | Entrada do usuário | Saída do usuário | Fim da transmissão |
|---|
| João | 19:00 | 19:00 | 21:00 | 21:00 |
| Maria | 19:00 | 19:30 | 21:00 | 21:00 |
O passo a passo lógico seria:
- Obter a duração total do evento (Fim - Início).
- Para cada pessoa na lista:
- Calcular o tempo que ela ficou conectada (Saída - Entrada).
- Comparar: O tempo conectado é igual à duração total?
- Se sim: Disparar a função de envio de e-mail usando o endereço que consta na base.
- Se não: Pular para o próximo da lista.
A ideia do QR Code que você deu é excelente para eventos presenciais! No online, o "token" geralmente é o próprio e-mail ou um ID de sessão que o navegador cria sozinho.
Espero ter ajudado.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!