Pular para conteúdo

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:

company_id

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
  • E-mail
  • 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.