Skip to content

Discovery: Arquitetura de Marca — MIDDAG Account

Scope: Product discovery — hierarquia de marca, convenções de nomenclatura (interna vs comercial), estratégia de domínios, arquitetura de portal, nomenclatura de níveis de plano, modelo multi-moeda e roteamento de entidade Context: A MIDDAG está entrando em uma nova fase com abertura da LLC, reorganização de marca e middag-account como backbone operacional. Este documento captura TODAS as decisões de nomenclatura, branding e estruturais para evitar perda de raciocínio entre sessões. Decisões aqui se propagam para todos os outros documentos de discovery.

Nota: Multi-currency, entity routing, entitlement labels → ver docs/adrs/ADR-301.md, docs/adrs/ADR-202.md e REFs relacionados.


1. Hierarquia de Marca

1.1 A Estrutura

MIDDAG (marca-mãe / empresa)

├── MIDDAG for Moodle                    → Plugins (linha de produto primária)
│   ├── local_middag                     → Plugin Moodle core (gratuito)
│   ├── local_middagpro                  → Plugin de distribuição de extensões premium (interno)
│   ├── [plugin_name] by MIDDAG          → Produtos de plugin individuais
│   └── (futuro: MIDDAG for [Platform])  → Expansão multi-plataforma

├── Campus EAD / MIDDAG Pro              → Plataforma SaaS LMS
│   ├── Campus EAD (campusead.com.br)    → Nome comercial para o Brasil
│   ├── MIDDAG Pro                       → Plataforma de produto SaaS (internacional)
│   └── local_middagpro                  → Mecanismo de distribuição (transparente para o cliente)

└── MIDDAG Services                      → Serviços profissionais (ex-MIDDAG Labs)
    ├── Managed Hosting
    ├── Technical Support
    ├── Infrastructure Management
    ├── Environment Management (TBD)
    ├── Development (modelo UST)
    ├── Consulting
    └── Training

1.2 Três Pilares

PilarNome ComercialNome InternoO Que ÉPúblicoStatus
PluginsMIDDAG for Moodlemiddag-pluginsProdutos de software para Moodle (e futuras plataformas)Global (BR + LLC)Ativo — prioridade LLC
PlatformCampus EAD (BR) / MIDDAG Pro (intl)middag-proSaaS LMS gerenciado pela MIDDAGBrasil primeiro, internacional depoisAdiado — médio prazo
ServicesMIDDAG Servicesmiddag-services (ex-Labs)Serviços profissionais sob demandaBrasil principalmente, LLC raroAtivo — alto ticket

1.3 Convenção de Nomenclatura: Interna vs Comercial

PrincípioRegraExemplo
Nomes internos são permanentesCódigo, classes, namespaces nunca mudam por brandingSVC-2026040003 permanece SVC mesmo se a marca diz "Services"
Nomes comerciais são fluidosLabels, texto de UI, copy do portal podem mudar via configuraçãoSVC exibido como "Service Project" no portal
Nomes de plugin seguem convenção da plataformaMoodle: local_middag, WP: middag-accountA plataforma dita o slug
"by MIDDAG" para plataformas de terceirosProdutos em outras plataformas usam atribuição"WooCommerce Quotes by MIDDAG"
"MIDDAG for X" para suítes específicas de plataformaSuíte de plugins para uma plataforma"MIDDAG for Moodle"

2. Estratégia de Domínios

2.1 Inventário de Domínios

DomínioPropósitoStatus
middag.com.brSite corporativo (BR)Ativo — sem alteração
middag.ioNovo domínio primário da marca + portal appAtivo — nova marca
middag.proPlataforma de produto SaaS (internacional)Reservado — futuro
campusead.com.brCampus EAD SaaS (Brasil)Reservado — futuro
account.middag.com.brMIDDAG Account (equipe interna / wp-admin)Ativo — sem alteração
suporte.middag.com.brHelp Center / portal JiraAtivo — sem alteração

2.2 Arquitetura de Portal

VOLTADO AO CLIENTE                         INTERNO
────────────────                           ────────

app.middag.io                              account.middag.com.br
├── MIDDAG App                             ├── MIDDAG Account (wp-admin)
├── TODOS os produtos, TODOS os clientes   ├── APENAS equipe interna
├── Frontend NextJS                        ├── Inertia.js + React (wp-admin)
├── Consome REST API v1                    ├── Interface WP direta
├── Portal self-serve                      ├── Operações de backoffice
└── Auth JWT RS256                         └── Login WordPress

account.middag.pro (futuro)
├── Portal branded para clientes SaaS
├── Mesmo backend de API
├── Branding Campus EAD / MIDDAG Pro
└── Subconjunto de funcionalidades do MIDDAG App

Decisões-chave:

  • app.middag.io = UM portal para TODOS os clientes (Plugins, Platform, Services)
  • account.middag.com.br = apenas equipe interna (UI admin no wp-admin)
  • account.middag.pro = portal branded opcional para clientes SaaS, apoiado pela mesma API
  • Portal por marca é possível via API — frontend diferente, mesmo backend

2.3 Roteamento de Domínio

Cliente visita app.middag.io

    ├── Faz login com credenciais (JWT RS256)

    ├── Sistema verifica Organization → qual entidade? (BR ou LLC)
    │   ├── BR → exibe valores em BRL, labels em português, documentos NFSe
    │   └── LLC → exibe valores em USD, labels em inglês, Stripe invoices

    └── Sistema verifica Entitlements → quais produtos?
        ├── PLG → Licenças de plugin, downloads, ativações
        ├── ENV → Status do ambiente, solicitações de serviço
        ├── SVC → Progresso do projeto, consumo de UST, SRs
        └── ORD/EDU/AFL → Pedidos, educação, dashboard de afiliado

3. Classes de Serviço (Nomenclatura)

3.1 Classes de Serviço — Nomes Finais (EN, Global)

ClasseDescrição
FreeSelf-serve, sem SLA, sem suporte humano
BasicIncluído com produto pago, ticket, horário comercial
FlexPay-as-you-go, créditos sob demanda
BusinessPlano mensal, especialista dedicado
EnterpriseContrato customizado, setor privado
GovernmentContrato customizado, setor público

3.2 Planos de Produto vs Classes de Serviço

PLANOS DE PRODUTO (definidos por linha)     CLASSES DE SERVIÇO (transversal)
────────────────────────────────────────    ───────────────────────────────────────────
Plugins:  FREE / FULL / LIFETIME / Exts    Free         → self-serve, sem SLA
Platform: a definir                        Basic        → ticket, horário comercial
Services: a redefinir                      Flex         → pay-as-you-go, créditos
                                           Business     → especialista, plano mensal
                                           Enterprise   → contrato customizado (privado)
                                           Government   → contrato customizado (público)

Planos de produto definem quais funcionalidades o cliente recebe. Classes de serviço definem qual atendimento o cliente recebe. São atribuíveis independentemente no Entitlement.

3.3 Onde os Planos se Aplicam

Cada linha define seus próprios planos. Não existe nomenclatura genérica de tiers (BASIC/PLUS/PREMIUM está deprecado).

Linha de ProdutoPlanos AtuaisReferência
MIDDAG for MoodleFREE, FULL, LIFETIME + Extensionsdocs/commerce/plugins/
Campus EAD / MIDDAG ProA definirdocs/commerce/platform/
MIDDAG Services: PlanosA redefinirdocs/commerce/services/
MIDDAG Services: ProjetosModelo UST (sem planos, baseado em crédito)04-service-catalog.md

7. middag-account — Infraestrutura vs Produto

7.1 Posição Atual

middag-account é infraestrutura interna com potencial aspiracional de produto (open-core / freemium).

FaseStatusO Que Significa
v5.0Infraestrutura internaConstruído para as operações da MIDDAG. Não distribuído.
v5.0.xInfraestrutura estabilizadaTestado em produção. Documentação completa.
v6.0+Produto aspiracionalSe a arquitetura se provar sólida, lançar como open-core com nome comercial.

7.2 Se/Quando se Tornar um Produto

AspectoDecisão
Nome comercialTBD — NÃO será "middag-account" (slug interno permanece)
DistribuiçãoWordPress.org (core gratuito) + extensões premium
Padrão de nome"[Product Name] by MIDDAG" ou "MIDDAG [Product Name]"
Limite open-coreConforme ../adrs/ADR-101.md §Estratégia Internal-First

7.3 Convenção de Nome Interno Atual

ContextoNome
Slug do plugin WordPressmiddag-account
Namespace PHPMiddag\Account\
Namespace REST APImiddag-account/v1
Menu wp-admin"MIDDAG Account"
Referência interna"Account" ou "middag-account"
Repositório Gitmiddag-account

8. Decisão de Arquitetura SaaS

8.1 Campus EAD / MIDDAG Pro

AspectoDecisão
Mercado BrasilCampus EAD (campusead.com.br) — nome comercial
Mercado internacionalMIDDAG Pro — plataforma de produto SaaS
RelaçãoMesmo produto, branding diferente por mercado
Gestão de clientesUsa backend de API do middag-account
Portal próprio possívelaccount.middag.pro ou app.campusead.com.br — frontend branded, API compartilhada
Plugin Moodle: local_middagproPlugin de distribuição para extensões premium — transparente para o cliente

8.2 SaaS e middag-account

Campus EAD / MIDDAG Pro (SaaS)

    ├── Cliente se cadastra → Organization criada no middag-account
    ├── Escolhe plano do produto → Entitlement (classe ENV) criado
    ├── Pagamento via Stripe → Invoice no middag-account
    ├── Ambiente provisionado → Entidade Environment no middag-account
    ├── Ticket de suporte → ServiceRequest no middag-account → Jira

    └── TODOS os dados do cliente vivem no middag-account.
        O frontend SaaS é apenas um portal branded consumindo a mesma API.

9. Log de Decisões

Todas as decisões tomadas durante as conversas de discovery, cronologicamente:

#DecisãoDataContexto
1Nome do plugin: middag-account2026-04-27Sessão anterior — escolhido sobre middag-desk, middag-manage
2Namespace: Middag\Account\src/2026-04-27README criado
3DDD Light + Symfony DI Container 7.42026-04-27Herdado do tema ADR-102
4Classes de entitlement: PLG, ENV, SVC, ORD, AFL, EDU2026-04-27Herdado do tema ADR-208
5Dual-entity: middag_br + middag_global2026-04-27Herdado do tema ADR-105
6Modelo de negócio open-core (futuro)2026-04-2702-product-vision
76 classes de serviço: Free, Basic, Flex, Business, Enterprise, Government2026-04-27Substitui BASIC/PLUS/PREMIUM para suporte
8Sem 24/7 abaixo de Enterprise2026-04-27Sustentabilidade da equipe
9Enterprise = "fale com vendas", contrato customizado2026-04-27Pode exigir contratações dedicadas
10Marca: MIDDAG for Moodle (plugins)2026-04-27Linha de produto primária
11Marca: Campus EAD (BR) / MIDDAG Pro (intl) para SaaS2026-04-27Marca separada, reduz sobrecarga da MIDDAG
12Marca: MIDDAG Services (ex-Labs)2026-04-27Mais claro que "Labs" para clientes
13Código SVC permanece, label vira "Service Project"2026-04-27Nomenclatura interna vs comercial
14Portal: app.middag.io (todos os clientes), account.middag.com.br (interno)2026-04-27Portal unificado de clientes, admin separado
15Níveis de plano: BASIC/PLUS/PREMIUMDEPRECADO2026-04-27Substituído por planos por linha + classes de serviço transversais
16Multi-moeda: BRL + USD, conversão manual ou automática2026-04-27Fatores de conversão em cascata
17Preço BR intencionalmente mais alto que LLC2026-04-27Incentivar compras pela LLC
18Organization tem moeda preferencial2026-04-27Determina exibição no portal
19Relatórios separados por entidade, consolidáveis via taxa de câmbio diária2026-04-27Novo requisito: armazenamento de taxa diária BRL/USD
20UST existe em ambas as moedas (valores independentes)2026-04-27Não apenas conversão — específico por mercado
21Tudo pode existir na BR e LLC — limites via configuração WP2026-04-27Sem restrições de entidade hardcoded
22middag-account = infra interna, produto aspiracional2026-04-27Pode se tornar open-core na v6.0+
23Nomes de classes de serviço em EN globalmente2026-04-27Free/Basic/Flex/Business/Enterprise|Government
24Padrão de nomes "MIDDAG for X" ou "X by MIDDAG"2026-04-27Flexível conforme contexto
25local_middagpro = distribuição de extensões premium (interno)2026-04-27Transparente para o cliente

10. Itens em Aberto

Itens em aberto de branding e nomenclatura estão registrados em BACKLOG.md (neste diretório) e ../commerce/BACKLOG.md.


11. Referências

  • Linhas de negócio: 02-business-lines.md
  • Classes de serviço: ../adrs/ADR-601.md
  • Catálogo de serviços (UST): 04-service-catalog.md
  • Visão do produto: ../adrs/ADR-101.md
  • Modelo de domínio: ../adrs/ADR-202.md
  • Fonte dos termos: /private/var/www/middag.termos.localhost/terms/
  • Fonte das regras de SLA: /private/var/www/middag.termos.localhost/sla-rules/
  • Fichas técnicas de produto: /private/var/www/middag.termos.localhost/draft/