Companies¶
Objetivo¶
O módulo Companies é responsável pelo gerenciamento das empresas (Tenants) da CoreFlow Platform.
Toda a plataforma opera em arquitetura Multiempresa (Multi-Tenant).
Cada registro de negócio pertence obrigatoriamente a uma empresa.
Nenhum produto deverá implementar seu próprio controle de empresas.
Responsabilidades¶
O módulo deverá fornecer:
- Cadastro de empresas
- Filiais
- Configurações
- Licenciamento
- Dados fiscais
- Identidade visual
- Parâmetros corporativos
- Controle de acesso entre empresas
- Isolamento de dados
Arquitetura¶
Companies
│
┌────────────────┼────────────────┐
│ │ │
Users RBAC Authentication
│ │ │
└────────────────┼────────────────┘
Todos os Produtos
Conceito de Tenant¶
Cada empresa representa um Tenant independente.
Todos os registros deverão possuir:
O acesso entre empresas é proibido, salvo permissões administrativas específicas.
Entidades¶
Company¶
Representa a empresa principal.
Campos mínimos:
- Razão Social
- Nome Fantasia
- CNPJ
- Inscrição Estadual
- Inscrição Municipal
- Telefones
- Site
- Status
Branch¶
Representa uma filial.
Cada filial pertence a apenas uma empresa.
Company Settings¶
Armazena configurações corporativas.
Exemplos:
- Idioma
- Timezone
- Moeda
- Formato de Data
- Tema
- Configurações fiscais
- Preferências gerais
License¶
Controla:
- Plano contratado
- Limites
- Recursos disponíveis
- Validade
- Situação
Multiempresa¶
Todo produto deverá respeitar obrigatoriamente:
- Isolamento de dados
- Isolamento de permissões
- Isolamento de configurações
- Isolamento de auditoria
Jamais compartilhar registros entre empresas.
Fluxo¶
flowchart LR
Empresa
↓
Configuração
↓
Licenciamento
↓
Usuários
↓
Produtos
↓
Operação
APIs¶
GET /api/v1/companies/
GET /api/v1/companies/{id}/
POST /api/v1/companies/
PUT /api/v1/companies/{id}/
PATCH /api/v1/companies/{id}/
DELETE /api/v1/companies/{id}/
Configurações¶
Cada empresa poderá configurar:
- Logotipo
- Nome
- Identidade Visual
- Idioma
- Timezone
- Moeda
- Formato de Datas
- Endereços
- Contatos
Licenciamento¶
O módulo deverá controlar:
- Plano
- Recursos habilitados
- Quantidade máxima de usuários
- Quantidade máxima de empresas
- Espaço utilizado
- Validade
Auditoria¶
Registrar:
- Cadastro
- Alterações
- Mudança de plano
- Alterações de configuração
- Exclusão lógica
- Inclusão de filiais
Integrações¶
O módulo integra-se com:
- Users
- Authentication
- RBAC
- Audit
- Notifications
- Files
- Todos os produtos
Regras de Negócio¶
- Toda empresa deverá possuir pelo menos um administrador.
- Todo usuário deverá estar vinculado a pelo menos uma empresa.
- Toda entidade de negócio deverá possuir
company_id. - Exclusão utilizará Soft Delete.
- Mudanças de plano deverão ser auditadas.
Segurança¶
É obrigatório:
- Isolamento entre empresas.
- Controle de acesso por Tenant.
- Validação de empresa em todas as APIs.
- Proteção contra acesso cruzado.
Testes Obrigatórios¶
- Cadastro de empresa
- Cadastro de filial
- Alteração cadastral
- Configurações
- Licenciamento
- Isolamento entre empresas
- Auditoria
- Soft Delete
Anti-patterns¶
É proibido:
- Compartilhar registros entre empresas
- company_id nulo
- Empresa sem administrador
- Configurações globais misturadas
- Exclusão física
Objetivo Final¶
Disponibilizar um módulo corporativo de gerenciamento de empresas totalmente reutilizável, garantindo isolamento entre Tenants, segurança, escalabilidade e padronização para todos os produtos da CoreFlow Platform.