Account (Conta)
A Account e a entidade raiz do sistema multi-tenant. Representa uma empresa ou petshop e contem todos os dados isolados de outros clientes.
Descricao
Cada Account representa um cliente do sistema Onepet2. Todos os dados - clientes, vendas, estoque, financeiro - pertencem a uma Account especifica e sao completamente isolados de outras Accounts.
Dados
Campos Principais
| Campo | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| name | Texto | Sim | Nome da empresa/petshop |
| cnpj | Texto | Sim | CNPJ da empresa (formato: XX.XXX.XXX/XXXX-XX) |
| score | Numero | Nao | Pontuacao/metrica da conta (uso interno) |
Campos de Onboarding
| Campo | Tipo | Descricao |
|---|---|---|
| form_wizard | Numero | Etapa atual do wizard de onboarding (0-4) |
| store_types | Multipla Escolha | Tipos de loja selecionados |
| use_other_system | Selecao | Se usa outro sistema (sim/nao) |
| system | Referencia | Sistema anterior (se aplicavel) |
| other_system | Texto | Nome do sistema anterior (se nao listado) |
| store_pains | Multipla Escolha | Desafios atuais do negocio |
| store_wishes | Multipla Escolha | Objetivos futuros desejados |
Metricas (Calculadas)
| Campo | Descricao |
|---|---|
| stores_count | Quantidade de filiais |
| mrr | Receita Recorrente Mensal |
| arr | Receita Recorrente Anual |
| ltv | Valor do Tempo de Vida do Cliente |
| lt | Tempo de Vida |
Relacionamentos
Pertence a
| Entidade | Descricao | Obrigatorio |
|---|---|---|
| Owner (User) | Usuario proprietario da conta | Sim |
| CS (OnepetUser) | Customer Success responsavel | Nao |
| System | Sistema anterior (para migracao) | Nao |
Possui Muitos
| Entidade | Descricao |
|---|---|
| Stores | Filiais/unidades da empresa |
| Users | Usuarios com acesso a conta |
| Customers | Clientes cadastrados |
| Cages | Gaiolas (Beauty Center) |
| CrmSettings | Configuracoes de CRM |
Muitos para Muitos
| Entidade | Descricao |
|---|---|
| StoreTypes | Categorias de tipo de loja |
| StorePains | Desafios/dores do negocio |
| StoreWishes | Objetivos/desejos futuros |
Regras de Negocio
Criacao de Account
-
Proprietario Automatico
- O usuario que cria a Account e automaticamente definido como Owner
- O Owner tem acesso total a conta
-
Primeira Filial Automatica
- Ao criar uma Account, uma Store e automaticamente criada
- A Store herda o nome e CNPJ da Account
-
Importacao de Dados Padrao
- Dados de configuracao sao importados de templates padrao
- Inclui: categorias financeiras, categorias de estoque, fabricantes
Validacoes
| Campo | Validacao | Quando |
|---|---|---|
| name | Obrigatorio | Sempre (wizard step 0) |
| cnpj | Obrigatorio | Sempre (wizard step 0) |
| store_types | Obrigatorio | Wizard step 1 (pode pular) |
| store_pains | Obrigatorio | Wizard step 2 (pode pular) |
| store_wishes | Obrigatorio | Wizard step 3 (pode pular) |
Fluxo de Onboarding
O onboarding segue um wizard de 5 etapas:
Etapas do Wizard
| Etapa | form_wizard | Campos | Pode Pular |
|---|---|---|---|
| Registro | 0 | name, cnpj | Nao |
| Tipo de Loja | 1 | store_types | Sim |
| Desafios | 2 | use_other_system, system, store_pains | Sim |
| Objetivos | 3 | store_wishes | Sim |
| Conclusao | 4 | - | - |
Navegacao do Wizard
- Proximo: Valida e avanca para proxima etapa
- Pular: Avanca sem validar (exceto etapa 0)
- Voltar: Retorna para etapa anterior
Automacoes
Ao Criar Account
-
Define Owner
- Usuario atual e definido como proprietario
- Account e vinculada ao usuario
-
Cria Primeira Store
- Store criada com mesmo nome e CNPJ
- Define como current_store do Owner
-
Importa Dados Seed (Job Assincrono)
- Copia dados de configuracao padrao
- Inclui categorias, settings de modulos
-
Gera Fabricantes (Job Assincrono)
- Copia fabricantes globais para a conta
- Garante isolamento multi-tenant
Dados Criados na Store
Quando a primeira Store e criada, automaticamente sao gerados:
| Entidade | Nome | Descricao |
|---|---|---|
| Deposit | "Deposito padrao" | Deposito inicial de estoque |
| FinancialAccount | "Tesouraria" | Conta financeira principal |
| PaymentMethods | (varios) | Metodos de pagamento padrao |
| Seed Data | (varios) | Configuracoes de modulos |
Campos Calculados
Informacoes de Onboarding
| Campo | Descricao |
|---|---|
| onboarding_image | Imagem dinamica baseada na etapa atual |
| wizard_title | Titulo da etapa atual (i18n) |
| wizard_description | Descricao da etapa atual (i18n) |
Informacoes de Suporte
| Campo | Descricao |
|---|---|
| cs_name | Nome do Customer Success |
| cs_whatsapp | Link WhatsApp do CS |
| cs_avatar_url | Avatar do CS |
Permissoes
| Acao | Quem Pode |
|---|---|
| Criar | Qualquer usuario (novo cadastro) |
| Editar | Owner da Account |
| Excluir | Nao permitido (soft delete) |
| Ver | Owner e usuarios da Account |
Restricoes Importantes
- Owner Imutavel: O Owner nao pode ser alterado apos criacao
- Minimo Uma Store: Toda Account deve ter pelo menos uma Store
- Wizard Linear: Etapas devem ser completadas em ordem (0→1→2→3→4)
- Dados Isolados: Todos os dados sao scoped por account_id
- Jobs Assincronos: Importacao de dados usa Sidekiq para nao bloquear
Tipos de Loja (StoreType)
Categorias disponiveis para classificar o petshop:
- Petshop tradicional
- Centro de estetica
- Clinica veterinaria
- Hotel/Hospedagem
- Daycare
- Delivery
- E-commerce
Desafios do Negocio (StorePain)
Problemas comuns que o sistema pode resolver:
- Gestao de estoque
- Controle financeiro
- Agendamento de servicos
- Relacionamento com clientes
- Emissao de notas fiscais
- Integracao de sistemas
Objetivos Futuros (StoreWish)
Funcionalidades desejadas:
- Automatizar processos
- Aumentar vendas
- Fidelizar clientes
- Reduzir custos
- Melhorar atendimento
- Expandir para novas filiais