Exemplo de Campo Personalizado
config.lua
Parâmetros de Configuração do Campo
O identificador
"driver"
é apenas um exemplo e pode ser substituído por qualquer identificador de sua escolha para representar diferentes campos personalizados.Parâmetro | Tipo | Descrição |
---|---|---|
id | string | Um identificador único para a licença. No exemplo acima, utilizamos driver . |
title | string | Define o título que será exibido no campo dentro do tablet. No exemplo acima, utilizamos Carteira de Motorista . |
actionName | string | Define o texto que será exibido no botão de ação. No exemplo acima, utilizamos Alterar status . |
confirmationMessage | string ou array[2] de strings | Mensagens de confirmação antes de realizar a ação. Se for um array, a primeira mensagem é para criação e a segunda para invalidação. |
successMessage | string ou array[2] de strings | Mensagens exibidas após a conclusão bem-sucedida da ação. Se for um array, a primeira mensagem é para criação e a segunda para invalidação. |
parseValue | function | Função que formata o valor para exibição no tablet. No exemplo acima, retornamos Sim para true e Não para false . |
buttonCondition | function | Função que determina se o botão de ação deve ser exibido ou não. No exemplo acima, mostramos o botão apenas se value for true . |
Funções Necessárias
Para o correto funcionamento deste campo de licença, é necessário implementar as seguintes funções nos arquivos indicados. O nome das funções é o ID com a primeira letra maiúscula. No exemplo, nosso ID é driver, então o nome das funções sãogetDriverLicense
,updateDriverLicense
e onUpdateDriverLicense
.
functions.lua
Functions.getDriverLicense(userID)
Esta função deve verificar se um usuário possui carteira de motorista válida.
functions.lua
Functions.updateDriverLicense(userID)
Esta função deve alternar o status da carteira de motorista de um usuário (criar ou invalidar).
functions.lua
webhooks.lua
Webhooks.onUpdateDriverLicense(userID, officerID)
Esta função de webhook é chamada quando um policial altera o status da carteira de motorista de um cidadão. Pode ser utilizada para logging, notificações ou integrações externas.
webhooks.lua
Fluxo de Funcionamento
- Quando um policial acessa os detalhes de um jogador no tablet, o sistema chama a função get (por exemplo,
Functions.getDriverLicense(userID)
) para obter o status atual da licença. - O valor retornado é formatado pela função
parseValue
para exibição, por lá, você pode retornar o valor que você quiser (no exemplo, “Sim” ou “Não”). - A função
buttonCondition
determina se o botão de ação deve ser exibido (no exemplo, só é exibido se o cidadão já possui a licença). - Quando o policial clica no botão “Alternar status”:
- É exibido uma confirmação para o policial;
- Se confirmado, a função de update (por exemplo,
Functions.updateDriverLicense(userID)
) é chamada; - Em seguida, o webhook correspondente (por exemplo,
Webhooks.onUpdateDriverLicense(userID, officerID)
) é acionado.
Criando Diferentes Tipos de Campos
O mesmo padrão de configuração pode ser usado para implementar qualquer campo personalizado, bastando alterar o identificador do campo e as funções correspondentes. Por exemplo:config.lua
Functions.getHuntingLicense(userID)
Functions.updateHuntingLicense(userID)
Webhooks.onUpdateHuntingLicense(userID, officerID)
Notas de Implementação
- Esta configuração utiliza a tag de substituição
{name}
nas mensagens, que deve ser substituída pelo nome do cidadão antes de exibir. - A lógica implementada em
buttonCondition
pode ser personalizada conforme a necessidade (no exemplo, só permite invalidar licenças existentes).