> ## Documentation Index
> Fetch the complete documentation index at: https://docs.patrimonion.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Considerações Gerais

> Padrões, convenções e boas práticas da API.

## Isolamento de dados (multi-tenant)

Cada requisição autenticada opera exclusivamente sobre os dados do usuário identificado pelo cookie de sessão. O `userId` 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**:

```
2025-08-15T00:00:00.000Z
```

Datas de vencimento (`dataVencimento`) podem ser enviadas apenas como `YYYY-MM-DD` — a API normaliza internamente.

## Ordenação

A API **não usa `orderBy` 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 campo `status` 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 com `ativo: 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:

1. Fazer upload via `/upload/*`
2. Receber a URL pública ou pressinada
3. Salvar a URL no recurso correspondente via `PATCH`

Veja o módulo [Upload](/api-reference/upload) para detalhes.
