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:
| Nivel | Descricao |
|---|---|
| Account | Isolamento completo - dados nunca se misturam entre Accounts |
| Store | Filtro opcional - permite visualizar dados por filial |
| User | Filtro opcional - permite visualizar apenas registros proprios |
Contexto de Trabalho
Cada usuario tem um contexto de trabalho definido por:
- Account - A empresa a qual pertence (fixo)
- 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
| Tipo | Descricao | Permissoes |
|---|---|---|
| Owner | Proprietario da Account | Acesso total, pode gerenciar tudo |
| Team Member | Colaborador | Permissoes definidas pelo Profile |
Estrutura de Permissoes
Niveis de Permissao
- Menu - Quais modulos pode acessar
- Dashboard - Quais dashboards pode visualizar
- Funcional - Quais acoes pode executar (ver, criar, editar, excluir)
- 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:
- Cria deposito padrao - "Deposito padrao" para estoque
- Cria conta financeira - "Tesouraria" para gestao de caixa
- Copia metodos de pagamento - Baseado em templates padrao
- Importa dados de configuracao - Settings de cada modulo
- Consulta dados do CNPJ - Preenche automaticamente endereco e dados da empresa