As proteções anti-erro do sistema
O que o A7X bloqueia automaticamente — pular etapa, dupla conclusão, peça em setor errado.
Erro humano é inevitável — o sistema não
Operador clica errado. Confunde peça. Tenta refazer. Em escala, esses errinhos viram caos.
O A7X tem 4 proteções automáticas embutidas no fluxo de produção.
Proteção 1: sequência rígida
A RPC complete_sector_item valida no banco:
“Esta peça está realmente no setor que está tentando concluir?”
Se você está na tela de Lavagem e tenta concluir uma peça que ainda está em Triagem, o sistema retorna erro. Não há como pular.
O mapa de setores é fixo no banco (CASE statement no PostgreSQL). Não dá pra adicionar uma rota alternativa pelo frontend.
Proteção 2: idempotência
Se você clicar Concluir duas vezes muito rápido (rede instável, duplo-toque), apenas a primeira vai. A segunda recebe a mesma resposta sem efeito.
Por trás: INSERT ... ON CONFLICT DO NOTHING na fila. Mesmo princípio
em todo lugar onde duplicidade pode causar problema.
Proteção 3: race condition (mais técnico)
Se 2 operadores tentam concluir a mesma peça ao mesmo tempo (improvável,
mas possível), o banco serializa com SELECT ... FOR UPDATE:
- Operador A trava a linha
- Operador B espera 50ms
- Operador A conclui
- Operador B recebe “peça já concluída por outro”
Resultado: zero conflito de estado. Zero peça contada duplo.
Proteção 4: tenancy guard
Operador da unidade A não consegue concluir peça da unidade B, mesmo acidentalmente. RLS (Row-Level Security) do PostgreSQL bloqueia no nível do banco — não depende do frontend.
Nenhuma URL “secreta” libera. Nenhum bug de UI vaza dados de outra unidade. A proteção vive no servidor.
O que acontece quando uma proteção dispara
UI mostra toast vermelho com mensagem clara:
- “Peça não está neste setor”
- “Peça já foi concluída”
- “Acesso negado”
Operador entende, ajusta, segue. Sem precisar de suporte.
E se mesmo assim algo dá errado?
Toda RPC crítica registra log em integration_failures com:
- Timestamp
- User ID
- Payload completo
- Erro retornado
Gestor consulta esse log no painel pra entender qualquer estranheza. Última aula desta trilha mostra como.
Erros comuns
- Duplicar com botão “Voltar”: depois de concluir, não dá pra desfazer pelo app. Idempotência protege contra dupla, mas não desfaz. Pra reverter, fala com gestor — existe RPC administrativa.
- Reclamar que sistema “não deixa”: se está bloqueando, há razão. Olhe a mensagem do toast antes de chamar suporte.
- Achar que pode editar setor de uma peça pelo painel: não pode. Por design.
Insight
Cada proteção é uma desculpa que o operador NÃO terá quando algo der errado. “Cliquei errado” não vira “perdi a peça” — vira “o sistema bloqueou e me avisou”.
Próximo passo
Peças passaram pelos 5 setores. Hora de devolver o lote ao ponto de coleta — e disparar o faturamento. Próxima aula.
Seu progresso fica salvo nesse navegador. Continue de onde parou quando voltar.
Você concluiu essa trilha
Agora você já domina esse processo. Volte e revise quando quiser — ou avance pra próxima trilha do seu papel.
Ver todas as trilhas