Templates e duplicar apps
Templates são apps curados que outros usuários podem duplicar pro próprio workspace.
Como marcar um app como template
No app → menu → "Marcar como template" (ícone LayoutTemplate).
- App aparece na galeria
/templatespra todos os users logados - Admin pode marcar como Oficial (selo dourado + ranking maior)
Duplicar um template
/templates → "Usar template" no card → cópia aparece no seu workspace com:
- Slug único (ex:
crm-copiaoucrm-copia-1) - Tabelas novas vazias (prefixo regenerado — não compartilha dados com o original)
- Schema espelhado via
CREATE TABLE LIKE INCLUDING ALL - Visibility = private (você muda depois se quiser)
Templates de sistema modular
Apps com sub-apps + schema declarado viram templates de sistema — aparecem como 1 card na galeria com badge "Sistema modular · N sub-apps".
Quando alguém duplica:
- Plataforma cria o pai no workspace do user (slug único + dataSchema atualizado)
- Cria todos os sub-apps linkados ao novo pai
- Roda
CREATE TABLEpras shared tables no novo prefix (app_<novo-pai>_shared_*) - Reescreve refs no código de cada sub-app pra apontar pras tabelas novas
- Hashes de tabelas internas (não-shared) também regenerados
Tudo em uma transação — rollback se falhar. Resultado: 1 click, sistema completo no workspace.
Diferença: galeria mostra só raízes
Sub-apps marcados individualmente como template não aparecem como card separado — eles fazem parte do template do pai. Pra desmarcar um sistema, desmarca o template no pai.
Quem pode duplicar
- Templates públicos: qualquer user logado
- Templates de negócio (private): membros do negócio
- Templates privados sem negócio: só o owner (e admin global)
Notificação
Quando alguém duplica seu template público, você recebe notificação:
"<user> duplicou seu app <título>"
Limites
- Templates não duplicam segredos (
/secrets) — usuário precisa cadastrar os próprios - Não duplicam GitHub sync config
- Apps deployed continuam apontando pro original — duplicate cria nova versão private