Pular para o conteúdo principal

Visao Geral - Estrutura Organizacional

A estrutura organizacional do Onepet2 define a base do sistema multi-tenant e controla como dados, usuarios e permissoes sao organizados.

Hierarquia do Sistema

Entidades Principais

Account (Conta)

A Account e a entidade raiz do sistema multi-tenant. Representa uma empresa/petshop e contem todos os dados isolados de outros clientes.

  • Cada Account tem um Owner (proprietario)
  • Uma Account pode ter multiplas Stores (filiais)
  • Todos os dados (clientes, vendas, estoque) pertencem a uma Account

Store (Filial)

A Store representa uma unidade fisica ou logica dentro de uma Account.

  • Cada Store tem seu proprio caixa, estoque e operacoes
  • Um usuario pode ter acesso a uma ou mais Stores
  • Dados podem ser filtrados por Store ou vistos globalmente

User (Usuario)

O User representa uma pessoa que acessa o sistema.

  • Autenticacao via email/senha com tokens JWT
  • Pode ser Owner (proprietario da Account) ou Team Member (colaborador)
  • Sempre vinculado a uma Account
  • Tem um Profile que define suas permissoes

Profile (Perfil)

O Profile define um conjunto de permissoes que pode ser atribuido a usuarios.

  • Controla acesso a modulos (menus)
  • Controla acesso a dashboards
  • Define permissoes funcionais (criar, editar, excluir)
  • Define escopo de acesso (todos os registros vs apenas os proprios)

Professional (Profissional)

O Professional representa um funcionario ou prestador de servico.

  • Pode ter multiplas funcoes (vendedor, veterinario, tosador, entregador)
  • Pode ou nao ter acesso ao sistema (vinculo com User)
  • Gerencia dados de salario, beneficios e comissoes

Fluxo de Criacao de Conta

Modelo Multi-Tenant

Isolamento de Dados

Todos os dados no sistema sao isolados por Account:

NivelDescricao
AccountIsolamento completo - dados nunca se misturam entre Accounts
StoreFiltro opcional - permite visualizar dados por filial
UserFiltro opcional - permite visualizar apenas registros proprios

Contexto de Trabalho

Cada usuario tem um contexto de trabalho definido por:

  1. Account - A empresa a qual pertence (fixo)
  2. Current Store - A filial atualmente selecionada (pode trocar)

O contexto determina quais dados o usuario ve e pode manipular.

Permissoes e Autorizacao

Tipos de Usuarios

TipoDescricaoPermissoes
OwnerProprietario da AccountAcesso total, pode gerenciar tudo
Team MemberColaboradorPermissoes definidas pelo Profile

Estrutura de Permissoes

Niveis de Permissao

  1. Menu - Quais modulos pode acessar
  2. Dashboard - Quais dashboards pode visualizar
  3. Funcional - Quais acoes pode executar (ver, criar, editar, excluir)
  4. Escopo - Todos os registros ou apenas os proprios

Integracao entre Entidades

User e Professional

Um User pode estar vinculado a um Professional:

  • O vinculo e opcional
  • Permite que o profissional acesse o sistema
  • Sincroniza automaticamente email e perfil

Store e Operacoes

Cada Store possui suas proprias:

  • Contas financeiras
  • Depositos de estoque
  • Metodos de pagamento
  • Caixas registradoras
  • Configuracoes de modulos

Dados Automaticos

Ao criar uma nova Account/Store, o sistema automaticamente:

  1. Cria deposito padrao - "Deposito padrao" para estoque
  2. Cria conta financeira - "Tesouraria" para gestao de caixa
  3. Copia metodos de pagamento - Baseado em templates padrao
  4. Importa dados de configuracao - Settings de cada modulo
  5. Consulta dados do CNPJ - Preenche automaticamente endereco e dados da empresa