Skip to content

Core vs Módulos

Núcleo (compartilhado)

Todo módulo usa. Já implementado salvo indicado.

RecursoStatus
Auth, sessão, RBAC
Tenant (multi-cliente)
Usuários, preferências
Lojas / unidades (incl. CD)
Produtos (catálogo)
Estoque (loja × produto × tamanho)
Vendas🔲 (entra com Vendas/PDV)
Navegação, layout, tema, Jarbys (shell front)✅ parcial

Módulo Remanejamento (1º)

Próprio: lotes, recomendações, override/veto, regras do motor, cadência, métricas de efetividade, histórico. Consome do core: produtos, lojas, estoque, usuários.

Estrutura-alvo (backend)

app/
  core/      config, security, deps, rbac, tenant
  shared/    models/schemas/repos do CORE (tenant, usuario, loja, produto, estoque, venda)
  modules/
    remanejamento/  models · schemas · services/(engine,grade,lotes,metricas) · router · seed
    vendas/         (futuro)
  main.py    monta core + routers dos módulos habilitados

Estrutura-alvo (frontend)

src/
  core/      shell: AuthProvider, layout, sidebar, tema, Jarbys, services/api, services/types
  modules/
    remanejamento/  routes · components · api.ts
  routes/    composição das rotas dos módulos + 404/login

Registry de módulos

Um registry declara cada módulo (id, ícone, rotas, menu, papéis, habilitação por tenant). O shell lê o registry e monta navegação + rotas. Adicionar módulo = entrada no registry + a pasta do módulo.