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
parseValuepara exibição, por lá, você pode retornar o valor que você quiser (no exemplo, “Sim” ou “Não”). - A função
buttonConditiondetermina 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
buttonConditionpode ser personalizada conforme a necessidade (no exemplo, só permite invalidar licenças existentes).