Modelagem Hierárquica para Redes de Restaurantes
O Loyaltify é uma plataforma white-label de fidelidade voltada para redes de restaurantes. Um dos desafios centrais do projeto foi modelar corretamente a estrutura organizacional das redes atendidas — grupos controladores, múltiplas marcas, diversas unidades físicas e cardápios variáveis. Este case explora como a modelagem hierárquica se tornou um elemento estrutural da arquitetura do produto, delegando autonomia operacional às unidades com supervisão corporativa sem ambiguidade de responsabilidades.
O Problema: Modelar Hierarquias Complexas sem Ambiguidade
O Problema: Modelar Hierarquias Complexas sem Ambiguidade
O Contexto: Redes Gastronômicas Multi-Nível
Redes gastronômicas operam em múltiplos níveis organizacionais. É comum existir:
- 🏢 Um grupo controlador (holding corporativa)
- 🍔 Múltiplas marcas sob o mesmo grupo (McDonald's, Burger King style)
- 📍 Diversas unidades físicas por marca
- 📋 Cardápios que variam por unidade
O Desafio de Modelagem
No Loyaltify, uma decisão arquitetural importante foi tomada:
Promoções não seriam globais por marca ou grupo. Cada promoção pertence a uma unidade específica.
Isso reflete a realidade operacional: cada restaurante possui autonomia para definir suas campanhas locais, sem interferência de outras unidades.
Mas como representar isso tecnicamente sem gerar ambiguidade?
A Solução: Hierarquia Clara com Responsabilidades Bem Definidas
O Loyaltify foi estruturado com a seguinte hierarquia de domínio:
Estrutura Definida
Grupo → Marca → Unidade → Menu
Cada nível possui responsabilidades distintas:
| Nível | Responsabilidade | Exemplo |
|---|---|---|
| Grupo | Visão corporativa e consolidação | Grupo XYZ Holdings |
| Marca | Identidade comercial e branding | Burger Prime, Pizza Express |
| Unidade | Operação local e definição de promoções | Burger Prime - Shopping ABC |
| Menu | Catálogo configurável por unidade | Hambúrguer Especial da unidade |
Decisão Crítica: Promoções no Nível da Unidade
Promoções e benefícios são definidos no nível da unidade.
Isso evita ambiguidade na aplicação de regras:
- ✅ Cada unidade controla suas próprias campanhas
- ✅ Não existe herança automática de promoções
- ✅ Conflitos entre níveis hierárquicos são eliminados por design
Implementação: Desafios Técnicos Resolvidos
1. Separação Estrutural e Operacional
A hierarquia organiza a estrutura da rede.
Mas a lógica promocional pertence à operação local.
Isso significa que:
- ❌ Não existe herança automática de promoções (pai → filho)
- ✅ Cada unidade controla suas próprias campanhas
- ✅ Conflitos entre níveis hierárquicos são eliminados por design
Exemplo prático:
Grupo possui 3 marcas. Marca A tem 5 unidades. Cada unidade define promoções independentemente. Unidade 1 pode ter "50% off", Unidade 2 pode não ter promoção nenhuma.
2. Permissões por Escopo
Mesmo que promoções sejam locais, o controle de acesso precisava respeitar a hierarquia:
| Papel | Escopo de Acesso | Permissões |
|---|---|---|
| Admin Corporativo | Grupo inteiro | Visão ampla, relatórios consolidados |
| Gestor de Marca | Marca específica | Supervisão de unidades da marca |
| Operador de Unidade | Unidade específica | Controle direto de promoções e menu |
A autorização considera tanto o papel quanto o escopo organizacional.
3. Menus Independentes por Unidade
Mesmo sob a mesma marca, unidades podem:
- 🍔 Ter itens exclusivos (pizza especial da região)
- 💰 Ajustar preços (baseado em custos locais)
- 🎁 Criar combinações específicas (combo local)
Como promoções se vinculam ao menu, a modelagem precisava garantir integridade entre:
- Itens cadastrados
- Regras promocionais
- Registro de compras
Solução: Foreign keys com cascata controlada + validações de negócio em nível de aplicação.
Impacto e Resultados Mensuráveis
A modelagem hierárquica permitiu que o Loyaltify:
- ✅ Representasse a estrutura real de redes gastronômicas
- ✅ Delegasse autonomia operacional às unidades
- ✅ Mantivesse supervisão corporativa (relatórios consolidados)
- ✅ Evitasse complexidade desnecessária em regras promocionais
- ✅ Escalasse organicamente — adicionar nova marca/unidade é trivial
Resultado tangível: Zero conflitos de promoções sobrepostas. Zero ambiguidade de responsabilidade.
"A hierarquia organiza. A unidade decide."
Decisões Técnicas Relevantes
1. Por que promoções no nível da unidade, não no grupo?
Trade-off analisado:
| Abordagem | Benefício | Problema |
|---|---|---|
| Promoções globais (grupo) | Simplicidade inicial | Conflitos quando unidade quer promoção diferente |
| Promoções por unidade | Autonomia operacional | Mais linhas no banco, mas zero ambiguidade |
Conclusão: Autonomia operacional vence. Redes reais operam assim.
2. Como implementar hierarquia no banco de dados?
Modelo relacional:
grupos (id, nome)
marcas (id, grupo_id, nome)
unidades (id, marca_id, nome, endereco)
menus (id, unidade_id, nome)
promocoes (id, unidade_id, descricao, desconto)
Benefícios:
- Queries simples com JOINs
- Integridade referencial via FK
- Fácil de entender e manter
3. Como validar que uma promoção só se aplica à unidade certa?
Validação em múltiplas camadas:
- Banco de dados: FK constraints
- Aplicação: Validações de negócio
- API: Autorização por escopo
Aprendizados Arquiteturais
Modelagem de domínio não é apenas estrutura de dados. Ela define onde está a responsabilidade operacional.
Princípios aplicados:
-
Modelar a realidade, não o ideal
- Redes reais têm autonomia local
- Não force centralização artificial
-
Separar estrutura de operação
- Hierarquia organiza
- Regras promocionais são locais
-
Eliminar ambiguidade por design
- Se herança cria conflitos, não useherança
Quando aplicar modelagem hierárquica?
Essa abordagem é adequada quando:
- Você modela organizações com múltiplos níveis
- Autonomia operacional é requisito de negócio
- Supervisão corporativa precisa coexistir com controle local
- Estrutura organizacional muda frequentemente (novas marcas/unidades)
Quando NÃO aplicar:
- Estrutura completamente flat (todos iguais)
- Hierarquia puramente conceitual (sem impacto operacional)
- CRUD simples sem lógica de negócio
Conclusão Estratégica
A modelagem hierárquica do Loyaltify demonstra que arquitetura de domínio deve refletir a realidade operacional, não abstração conceitual desconectada.
Ao separar claramente:
- Estrutura organizacional (hierarquia)
- Controle promocional (operação local)
Criamos um sistema que:
- É coerente com o mundo real
- Elimina ambiguidade de responsabilidade
- Escala organicamente
- Facilita onboarding de novos clientes
"A hierarquia não complica o sistema. Ela o torna coerente com o mundo real."
Continue Explorando
Se você está modelando domínios hierárquicos ou organizacionais:
- Arquitetura Republicável com Desacoplamento Estratégico — o contexto completo do Loyaltify
- Instância por Cliente como Estratégia de Isolamento — como isolar clientes sem multi-tenancy
Precisa de consultoria em domain modeling? Conheça nossos serviços.
