diff --git a/Codigos/notif_ponto.md b/Codigos/notif_ponto.md
index 9b34892..7bf4dfb 100644
--- a/Codigos/notif_ponto.md
+++ b/Codigos/notif_ponto.md
@@ -2,7 +2,7 @@
title: Notificação de Ponto
description: Sistema de notificação ponto
published: true
-date: 2026-08-15T01:00:06.922Z
+date: 2026-08-15T01:29:32.722Z
tags:
editor: markdown
dateCreated: 2026-08-15T01:00:06.922Z
@@ -161,17 +161,11 @@ entrada1 → saida1 → entrada2 → saida2
```
| Pontos no dia | Situação |
-
| ---: | --- |
-
| 0 | Falta `entrada1` |
-
| 1 | Falta `saida1` |
-
| 2 | Falta `entrada2` |
-
| 3 | Falta `saida2` |
-
| 4 | Jornada concluída |
### 5.3 Lembrete de entrada2
@@ -193,9 +187,7 @@ Com três pontos no dia, considerar que eles são `entrada1`, `saida1` e `entrad
```text
trabalho_antes_do_almoco = saida1 - entrada1
-
tempo_restante = 7h55 - trabalho_antes_do_almoco
-
horario_estimado_saida2 = entrada2 + tempo_restante
```
@@ -205,21 +197,13 @@ O lembrete deve ser agendado para o horário calculado menos uma antecedência c
Exemplo:
```text
-
entrada1: 08:00
-
saida1: 12:00
-
entrada2: 13:00
-
trabalho antes do almoço: 4h00
-
restante: 3h55
-
saida2 estimada: 16:55
-
lembrete: 16:50 (antecedência de 5 minutos)
-
```
## 6. Agendamentos e prevenção de duplicidade
@@ -227,11 +211,8 @@ lembrete: 16:50 (antecedência de 5 minutos)
Cada lembrete é persistido no SQLite com uma chave única. Uma chave legível pode seguir o formato:
```text
-
bruno14082026entrada2
-
bruno14082026saida2
-
```
A garantia técnica deve ser a restrição única:
@@ -247,17 +228,11 @@ Isso evita colisões se nome de usuário mudar ou dois nomes forem semelhantes.
### Estados
| Status | Significado |
-
| --- | --- |
-
| `scheduled` | Agendamento criado, ainda não é hora de enviar |
-
| `ready_to_send` | O horário chegou; `execute_send = true` |
-
| `sent` | Mensagem enviada com sucesso |
-
| `cancelled` | Ponto foi detectado antes do lembrete ou o dia deixou de ser aplicável |
-
| `failed` | Houve falha de envio; permite retentativa controlada |
Pela regra aprovada, quando houver um agendamento pendente com `execute_send = true`, o sistema envia a mensagem sem nova consulta à API. Caso não exista agendamento ou ele esteja com `execute_send = false`, o sistema consulta o histórico para decidir se cria/cancela agendamentos.
@@ -267,49 +242,27 @@ Pela regra aprovada, quando houver um agendamento pendente com `execute_send = t
## 7. Fluxograma operacional
```mermaid
-
flowchart TD
-
I["Ciclo do agendador, por usuário"] --> D{"É dia útil?
Segunda a sexta"}
-
D -->|Não| X["Encerrar ciclo"]
-
D -->|Sim| A{"Existe agendamento vencido
com execute_send = true?"}
-
A -->|Sim| T["Enviar mensagem Telegram"]
-
T --> M["Registrar status sent e sent_at"]
-
M --> X
-
A -->|Não| H["Consultar histórico de pontos"]
-
H --> E{"Erro de autenticação?"}
-
E -->|Sim| L["Autenticar novamente"]
-
L --> R["Atualizar client, token e validade"]
-
R --> H
-
E -->|Não| V["Filtrar pontos de hoje e ordenar"]
-
V --> P{"Quantidade de pontos"}
-
P -->|0 ou 1| X
-
P -->|2| EN["Criar, se inexistente:
entrada2 = saida1 + 55 min"]
-
P -->|3| SA["Calcular saída2 e criar,
se inexistente, o agendamento"]
-
P -->|4| F["Jornada completa;
não criar lembretes"]
-
EN --> X
-
SA --> X
-
F --> X
-
```
## 8. Estrutura de pastas e arquivos