Isolamento de dados (multi-tenant)
Cada requisição autenticada opera exclusivamente sobre os dados do usuário identificado pelo cookie de sessão. OuserId nunca vem do body da requisição — ele é extraído do session cookie pelo middleware verificarToken e aplicado automaticamente em todas as queries.
Isso significa que mesmo conhecendo o id de um recurso de outro usuário, a API retornará 403 Forbidden.
Datas
Todas as datas são trafegadas como strings no formato ISO 8601:dataVencimento) podem ser enviadas apenas como YYYY-MM-DD — a API normaliza internamente.
Ordenação
A API não usaorderBy no Firestore para evitar a criação de índices compostos obrigatórios. Toda ordenação é feita em memória após a query. O comportamento padrão de cada endpoint é descrito na sua documentação.
Status de Parcelas (Financeiro)
O campostatus de parcelas financeiras é auto-gerenciado. Ao buscar qualquer listagem do módulo /financeiro, a API verifica automaticamente parcelas com status PENDENTE e dataVencimento anterior a hoje — e as atualiza para ATRASADO em batch antes de retornar a resposta.
Você nunca precisa chamar um endpoint separado para “vencer” parcelas.
Soft Delete
O módulo de Inventário usa soft delete. Itens removidos ficam comativo: false no banco e são excluídos das listagens normais, mas preservados no histórico de vistorias.
Uploads
Arquivos (fotos, vídeos, documentos) são gerenciados via MinIO com URLs pressinadas. O fluxo é sempre:- Fazer upload via
/upload/* - Receber a URL pública ou pressinada
- Salvar a URL no recurso correspondente via
PATCH