Gerenciar Limites
Pré-requisitos de acesso
- Permissão (módulo):
viewLimitsOUmanageLimitspara abrir e listar;manageLimitspara criar, editar ou excluir (basta um dos módulos para visualizar; criar/editar/excluir sempre exigemanageLimits). - Licença/Feature: Nenhuma.
- Contêiner do menu: GERAL → grupo Usuários
O que é / quando usar
Tela de cadastro dos perfis de limite (também chamados de "limites gerais") da plataforma. Cada perfil é um conjunto nomeado de tetos por tipo de movimentação — transferência cripto externa, TED, PIX, transferência para mesma titularidade, transferência interna e saque. Os perfis criados aqui são depois atribuídos a usuários individualmente pela tela de Detalhes do usuário, onde o operador escolhe qual perfil de limite vale para aquele cliente.
Use ao montar a política de limites do tenant (ex.: "Padrão", "Investidor Qualificado", "Conta Verificada") e ao ajustar os tetos de cada perfil. Esta tela não opera sobre um cliente específico — ela define os modelos; a vinculação cliente↔perfil é feita nos Detalhes do usuário.
Pré-condições
- Permissão:
viewLimitsoumanageLimitscadastrado para a role do operador. A permissão é dupla — o enum estático CPM (E_PERMISSION_MODULES.viewLimits/E_PERMISSION_MODULES.manageLimits) valida a rota no API-Gateway e o módulo dinâmico correspondente precisa estar associado à role no banco para a UI liberar o item de menu. A listagem (getAllGeneralLimits) aceita qualquer um dos dois; criar/editar/excluir (createGeneralLimits/updateGeneralLimits/deleteGeneralLimits) exigemanageLimits. - Licença/Feature: nenhuma.
- Dependências de outras telas: nenhuma para criar perfis. Para que um perfil tenha efeito, ele precisa ser atribuído a um usuário em Detalhes do usuário (chamada
updateGeneralLimitsForUser).
Passo a passo
- Acesse o menu Usuários → Gerenciar Limites (
/manage-limits/list). - A tabela mostra os perfis existentes com Tipo (nome do perfil) e o teto de Transferência Cripto.
- Clique em Novo para criar um perfil; ou use os ícones de visualizar / editar / excluir na linha de um perfil existente.
- No formulário, preencha o Nome do Limite, anexe a imagem do perfil e informe os tetos por tipo de movimentação.
- Clique em Salvar. Em criação e edição, um rodapé de confirmação (bottom-sheet) é exibido antes de persistir.
- Para aplicar o perfil a um cliente, vá em Detalhes do usuário e selecione o perfil de limite desejado.
Campos
Formulário de criação/edição (rotas /manage-limits/create, /manage-limits/edit/:id, /manage-limits/details/:id):
| Campo | O que é | Obrigatório? | Efeito no sistema/backend |
|---|---|---|---|
| Nome do Limite (Tipo) | Identificador legível do perfil (ex.: "Padrão", "Investidor Qualificado") | Sim | Grava em IGeneralLimits.type no CPM. Imutável após a criação — o campo fica desabilitado no modo edição (só é editável ao criar). Validado por colectionNameValidator (sem caracteres inválidos). |
| Imagem | Imagem/ícone do perfil, enviada via upload | Sim | Faz upload pelo serviço de arquivos e grava a URL em IGeneralLimits.image. O Salvar fica bloqueado sem type e sem image (validateSave). |
| Transferência Cripto | Teto de transferência cripto externa | Não | Grava crypto_external_transfer. É a única coluna de teto exibida na listagem. |
| Envio de TED | Teto de TED | Não | Grava ted_transfer. |
| Envio de PIX | Teto de PIX | Não | Grava pix_transfer. |
| Envio para mesma titularidade | Teto de transferência entre contas do mesmo titular | Não | Grava same_account_transfer. |
| Transferência Interna | Teto de transferência interna (entre carteiras na plataforma) | Não | Grava internal_pix_transfer. |
| Saques | Teto de saque | Não | Grava withdraw_transfer. |
Tetos vazios
Os campos de teto não são obrigatórios no formulário. Um perfil pode ser criado só com nome e imagem e ter os tetos preenchidos depois (modo edição). Tetos não preenchidos ficam sem valor no perfil — confira a política de cada tipo de movimentação antes de deixar um teto em branco.
Ações e modais
- Novo: abre o formulário em branco (
/manage-limits/create). ExigemanageLimits. - Visualizar (olho): abre o perfil em modo leitura (
/manage-limits/details/:id), com botão Editar para alternar. - Editar (lápis): abre o formulário com os dados do perfil (
/manage-limits/edit/:id). O Nome do Limite fica bloqueado. O botão Salvar só habilita se houver alteração real em algum campo (editValidatecompara com o original). - Excluir (lixeira): abre um bottom-sheet de confirmação; ao confirmar, chama
deleteGeneralLimits/:id. ExigemanageLimits. - Salvar: bottom-sheet de confirmação antes de persistir, tanto na criação quanto na edição.
Regras de negócio / cuidados
Atenção
- Nome imutável: o nome do perfil não pode ser alterado após criado. Para "renomear", crie um perfil novo e re-atribua os usuários.
- Esta tela não vincula usuários. Criar ou editar um perfil aqui não altera o limite de nenhum cliente automaticamente. A vinculação cliente↔perfil é feita em Detalhes do usuário via
updateGeneralLimitsForUser. Editar os tetos de um perfil já atribuído passa a valer para os clientes que usam aquele perfil. - Imagem obrigatória: sem imagem o Salvar fica bloqueado — anexe a imagem antes de tentar salvar.
- Valores financeiros: os tetos representam valores monetários e são tratados com precisão (BigNumber) no backend — não arredonde na conferência; confira as casas decimais conforme o tipo (token vs. fiat).
Telas relacionadas
- Detalhes do usuário — onde o perfil de limite é atribuído a um cliente.
- Lista de usuários — ponto de partida para localizar o cliente.
- Índice do grupo Usuários