HandyCafe Docs
owner cashier

Gestão de Membros

Membros são clientes cadastrados na sua lan house ou centro de jogos. Um perfil de membro armazena a identidade do cliente, informações de contato, credenciais de login e preferências de cobrança. Membros podem fazer login nos PCs clientes, acumular saldo em carteira, comprar pacotes de tempo, ganhar pontos de fidelidade e receber descontos baseados em nível nas sessões e pedidos.

Campos do Perfil de Membro

Cada registro de membro contém as seguintes informações:

  • Nome de usuário: Um identificador único e que não diferencia maiúsculas de minúsculas que o membro usa para entrar nos PCs clientes. Uma vez criado, o nome de usuário não pode ser duplicado no sistema.
  • Nome de exibição: O nome mostrado no Painel Administrativo, listas de sessões e saudação no lado do cliente. Este campo é obrigatório.
  • Senha: Membros podem definir uma senha para login por autoatendimento nos PCs clientes. A senha é armazenada como hash e pode ser deixada em branco inicialmente (o membro a define no primeiro login).
  • Email: Endereço de email opcional. A visibilidade é controlada pela permissão DISPLAY_EMAIL.
  • Celular: Número de telefone opcional. A visibilidade é controlada pela permissão DISPLAY_GSM.
  • Avatar: URL de uma imagem de perfil exibida na tela de bloqueio do cliente e nas listas de membros.
  • Gênero: Padrão "desconhecido". Pode ser definido como masculino, feminino ou outro para filtragem demográfica.
  • Observação: Um campo de texto livre para uso interno. Visível apenas para a equipe, não para o membro.

Estados do Membro

Cada membro possui duas flags de estado independentes:

Ativo / Inativo

O botão ativo/inativo controla se o membro aparece nos resultados de busca padrão e pode interagir com o sistema. Desativar um membro é uma exclusão suave. O perfil e todos os dados associados (créditos de carteira, créditos de tempo, histórico de sessões) são preservados mas o membro fica oculto das operações diárias.

Permissão de Login

A flag can_login controla se o membro tem permissão para entrar nos PCs clientes. Um membro pode estar ativo (visível no sistema) mas com login desabilitado, o que é útil para membros com dívidas pendentes ou violações de política.

Atribuição de Nível

Cada membro pode ser atribuído a um nível de fidelidade. O nível determina:

  • Desconto em BPS: Um desconto em pontos base aplicado ao preço das sessões. Por exemplo, um nível com discount_bps = 500 concede ao membro 5% de desconto na tarifa por hora.
  • Rótulo da função: Um rótulo descritivo (como Prata, Ouro, VIP) mostrado no cartão de perfil do membro e nos painéis de sessão.

A atribuição de nível pode ser manual ou automática com base no sistema de pontos de fidelidade. Consulte a página Níveis de Fidelidade para detalhes sobre como os níveis são configurados e como os membros progridem.

Tempo Restante e Escopo de Dispositivo

O tempo restante de um membro não é um número único. O tempo fica guardado em lotes. Cada lote é utilizável apenas em PCs, apenas em consoles ou nos dois. Os grupos não se sobrepõem. O saldo total é a soma simples deles.

O que o membro pode de fato gastar depende de onde ele está sentado:

Posto Tempo utilizável
Um PC Os lotes só de PC mais os lotes de ambos os dispositivos
Um console Os lotes só de console mais os lotes de ambos os dispositivos

O painel de associação mostra o saldo total e, separadamente, quanto dele é utilizável em PCs e em consoles. Enquanto o membro está sentado, ele também mostra quanto é utilizável naquele posto, calculado com o grupo de preços e o escopo do dispositivo em que ele está. O selo desaparece quando ele deixa o posto.

É por isso que um membro pode ter 480 minutos no total e ainda assim ter apenas alguns minutos disponíveis na máquina à frente dele. Um pacote com escopo de console não vale nada em um PC.

Se uma sessão for aberta em um dispositivo que nenhum dos tempos do membro cobre, o painel mostra Tempo do membro não utilizável neste dispositivo.

Tempo a expirar

O painel indica a próxima expiração como um grupo e não como um lote isolado. Todos os lotes que expiram no mesmo instante são somados e detalhados por escopo. O aviso reflete, portanto, todo o valor prestes a ser perdido.

Cartões de Membro

Um membro pode receber um cartão NFC ou RFID que abre uma sessão com uma aproximação, dispensando nome de usuário e senha. Os cartões são atribuídos, devolvidos e cancelados no painel do membro. Veja Cartões de Membro.

Limite de Conexões Simultâneas

O campo max_connection define o número máximo de sessões ativas simultâneas que um membro pode ter em todos os PCs clientes. O valor padrão é 1, significando que o membro só pode estar logado em um PC por vez. Se um membro tentar fazer login em um segundo PC enquanto já possui uma sessão ativa, o sistema rejeitará o login.

Aumentar este valor é útil para membros que gerenciam múltiplas máquinas (como contas de funcionários) ou para níveis de associação especiais que permitem uso em múltiplos dispositivos.

Buscando e Filtrando Membros

A página de Membros oferece uma lista com rolagem virtual que lida com grandes bancos de dados de membros de forma eficiente. Você pode:

  • Buscar: Digite na barra de busca para filtrar por nome de usuário, nome de exibição, email ou número de celular. A busca não diferencia maiúsculas de minúsculas e atualiza os resultados em tempo real.
  • Filtrar por status: Alterne entre exibir todos os membros, apenas membros ativos ou apenas membros inativos.
  • Ordenar: Clique nos cabeçalhos das colunas para ordenar por nome, data da última visita ou data de criação.

A implementação de rolagem virtual carrega apenas a parte visível da lista de membros na memória para que o desempenho permaneça fluido mesmo com dezenas de milhares de membros cadastrados.

Indicador de Status Online

Quando um membro está logado em um PC cliente ou possui uma sessão de console ativa, seu perfil exibe um indicador verde de online na lista de membros. O indicador também mostra em qual cliente ou console específico o membro está usando para que a equipe possa localizar rapidamente um cliente.

Criando um Novo Membro

Para criar um novo membro:

  1. Navegue até a página de Membros na barra lateral.
  2. Clique no botão Adicionar Membro na barra de ferramentas.
  3. Preencha pelo menos o nome de exibição (obrigatório) e opcionalmente um nome de usuário para login.
  4. Defina um nível se aplicável ou deixe no padrão.
  5. Ajuste o valor de conexões máximas se o padrão de 1 não for apropriado.
  6. Clique em Salvar para criar o membro.

O sistema gera automaticamente um ID único para o membro e registra a identidade do operador que fez a criação.

Editando um Membro

Selecione um membro na lista para abrir a visualização detalhada do perfil. A partir daqui você pode:

  • Atualizar qualquer campo do perfil (nome de exibição, email, celular, gênero, observação).
  • Alterar a atribuição de nível do membro.
  • Alternar as flags ativo e can_login.
  • Redefinir ou alterar a senha do membro.
  • Ajustar o limite de conexões simultâneas.

Todas as alterações são salvas imediatamente e uma entrada de log de auditoria é criada.

Excluindo um Membro

Excluir um membro remove o perfil do sistema ativo. Esta ação requer a permissão MEMBER_DELETE. Um membro pode ser excluído mesmo que tenha sessões passadas ou histórico de login. O histórico de sessões e de transações é preservado para fins de relatório porém deixa de estar vinculado a um perfil de membro. Os saldos de carteira e de créditos de tempo são removidos junto com o perfil. Para manter o registro completo de um membro intacto, desative-o em vez de excluí-lo.

Requisitos de Permissão

O acesso aos recursos de gerenciamento de membros é controlado pelas seguintes permissões na função do operador de caixa:

Permissão Concede
MEMBER_VIEW Visualizar a lista de membros e buscar membros
MEMBER_ADD Criar novos perfis de membros
MEMBER_UPDATE Editar perfis de membros existentes
MEMBER_DELETE Excluir perfis de membros
DISPLAY_EMAIL Ver o endereço de email do membro na visualização detalhada
DISPLAY_GSM Ver o número de celular do membro na visualização detalhada

Se a função do operador não incluir DISPLAY_EMAIL ou DISPLAY_GSM, esses campos ficam ocultos no painel de detalhes do membro mesmo que os dados existam no banco de dados.