Ciclo de vida do resultado

Um modelo de dados para resultados de registro no Telegram e novas tentativas de atualização

Armazene os campos da resposta de registro no Telegram, diferencie resultados concluídos de erros da API e preserve uma data e hora local da resposta.

Equipe editorial do TG ValidatorPublicado 21 de julho de 20264 min de leitura
Observações de registro no Telegram com data e hora vinculadas a um registro estável de número de telefone
Os resultados concluídos e as tentativas de atualização posteriores devem continuar rastreáveis de forma independente.

Por que um único booleano não basta

Um resultado de registro no Telegram é uma observação com data e hora produzida por uma verificação concluída, e não uma verdade permanente associada a um número de telefone.

Um campo como telegram_valid perde um contexto essencial. Ele não informa qual número normalizado foi verificado, quando a verificação foi executada, se o false foi uma decisão concluída nem se a requisição, na verdade, falhou. O banco de dados deve preservar essas distinções para que um aplicativo possa exibir e atualizar o resultado com honestidade.

O TG Validator retorna uma decisão concluída de forma síncrona, o que significa que a observação pode ser gravada assim que a resposta HTTP chega. Os campos retornados devem ser armazenados como estão, sem inventar outro conjunto de status de produto.

Separe o objeto das suas observações

Use um registro interno estável para o telefone e vincule a ele várias observações de verificação. Isso evita reescrever o histórico e torna uma atualização posterior fácil de entender.

Registro Campos sugeridos Finalidade
Telefone de origem phone_id, source_phone, source_system Preserva o registro de negócio original
Telefone normalizado phone_id, e164_phone, normalized_at Registra o valor canônico usado nas verificações
Observação de verificação phone_id, service_type, registered, received_at Armazena um resultado síncrono

Se a normalização mudar porque o contexto de país original foi corrigido, crie ou versione o registro canônico. Não vincule silenciosamente um resultado antigo do Telegram a um número de telefone interpretado de outra forma.

Use exatamente os formatos de resposta documentados

Formato retornado Valor de registered Significado
code=0, data.registered=true true A verificação concluída informou registrado
code=0, data.registered=false false A verificação concluída informou não registrado
code da API diferente de zero Ausente Nenhuma decisão de registro; erro da API, não um resultado de registro

A distinção é proposital. Um código de API diferente de zero significa que o serviço não tem uma resposta booleana para armazenar. Entrada inválida, rejeições por concorrência, saldo insuficiente, manutenção e falhas internas não acrescentam outros valores a data.registered.

Mantenha o estado atual e a última tentativa como duas visões

Duas perguntas costumam ser úteis:

  1. Qual é a observação de registro concluída mais recente?
  2. O que aconteceu na tentativa de requisição mais recente?

Elas podem apontar para linhas diferentes. Se um resultado true concluído em T1 for seguido de um erro da API em T2, a observação concluída mais recente continua sendo true em T1, enquanto um log de requisições separado pode registrar o status HTTP e o código da API de T2. Isso impede que um operador confunda T1 com um resultado recente ou T2 com false.

Quando uma chamada posterior é concluída com false em T3, a visão concluída atual avança para T3. Os registros de T1 e T2 continuam disponíveis para auditoria e solução de problemas.

Defina quando uma atualização é necessária

O TG Validator fornece uma observação síncrona atual quando é chamado, mas o aplicativo integrador é responsável pela sua política de atualização. Escolha uma idade máxima aceitável com base na decisão a ser tomada e deixe essa idade visível na interface.

Uma política de atualização deve especificar:

  • a idade máxima aceita para cada fluxo de trabalho;
  • se os operadores podem usar um resultado concluído mais antigo após um erro da API posterior;
  • quais respostas da API com código diferente de zero devem ser reenviadas mais tarde;
  • como o limite de concorrência por usuário influencia o agendamento;
  • se todas as tentativas ou apenas as observações concluídas são mantidas a longo prazo.

Não repita uma verificação concluída com registered=false só porque o resultado é false. Repita quando for necessária uma observação mais recente ou quando a tentativa anterior não produziu decisão.

Uma consulta precisa do estado atual

O estado de registro atual deve selecionar a observação mais recente em que a resposta externa teve code=0 e, então, retornar juntos o seu valor registered e o received_at local. Nunca retorne o booleano sem a data e hora correspondente.

O estado da última tentativa deve selecionar a observação mais recente de qualquer status. Se ela não estiver concluída, a interface pode explicar que houve a tentativa de uma verificação mais recente, sem substituir o último resultado de registro conhecido.

O princípio de um design durável

Acrescente observações, preserve suas datas e horas e nunca force uma incerteza operacional a virar um valor de registro no Telegram.

Esse modelo corresponde exatamente ao produto. O TG Validator responde de forma síncrona a uma única pergunta sobre registro; ele não fornece dados de identidade nem de perfil da conta. O aplicativo do cliente fornece o registro estável, a política de retenção, o cronograma de atualização e a decisão de negócio em torno de cada observação.

Fontes