TDD — Comando Firestore (debug)
Status
Implementado
Contexto
Executa comando arbitrário contra o Firestore para debug (leitura/escrita). Acessível via Home → Ajuda → Debug (campo de comando).
Contratos
Backend: platformDebugFirestoreHttp (POST)
- Headers:
x-debug-token(DEBUG_PLATFORM_TOKEN configurado no backend) - Payload:
{ op: "read"|"readTree"|"write", path, documentId?, data?, mode?: "merge"|"overwrite", limit?, maxDepth? } - Response:
{ ok, data: { type, path, tree|document|documents|mode }, error?, debug }
Frontend: ExecutePlatformDebugFirestoreCommandUseCase
Interface de Usuário (UI)
Painel de debug (popup Ajuda, desbloqueado). Coluna direita (ou abaixo em mobile).
Componentes:
- Comandos — título da seção
- Campo de entrada — TextField multiline (3–5 linhas); hint com exemplos JSON e CLI (
{"op":"read","path":"..."}ou/db read --path ...) - Limpar — limpa o campo de comando
- Injetar papéis: — botões "1. Catálogo (ministério)" e "2. Visibilidade (igreja)" que preenchem o campo com comandos pré-definidos
- Executar comando — botão principal; mostra loading durante execução
- Atalhos 0–9 — grade de botões; 0 = aplicar estrutura, 1 = snapshot, 2–9 reservados
- Resultado da execução é gravado na área "Debug out" (coluna esquerda)
Observação: Aceita JSON ou sintaxe CLI (/db read|tree|write --path ... [--data ...]). Para write, --data é obrigatório com objeto JSON.
Fluxo
- Usuário digita comando (JSON ou CLI) e clica em "Executar comando"
- Frontend envia para
platformDebugFirestoreHttp - Backend executa e retorna resultado
- Resultado exibido na área "Debug out"
Código de referência
frontend/lib/application/use_cases/execute_platform_debug_firestore_command.dartbackend/functions/src/interfaces/http/platform-debug-firestore-http-controller.ts