Skip to main content

Visão Geral

Uma inspeção é um registro formal do estado do imóvel em um dado momento. Ao criar uma vistoria, a API captura automaticamente um snapshot do inventário ativo do imóvel — preservando o estado de cada item naquele instante, independente de alterações futuras.

O objeto Inspeção

{
  "id": "vis001",
  "imovelId": "abc123",
  "tipo": "Entrada",
  "dataVistoria": "2025-02-01",
  "descricao": "Vistoria de entrada do locatário João da Silva.",
  "status": "rascunho",
  "fotosKeys": [],
  "videosKeys": [],
  "itensVistoriados": [
    {
      "itemId": "inv001",
      "condicaoAtual": "Bom",
      "observacao": "Pequeno arranhão na lateral.",
      "fotosUrls": []
    }
  ],
  "snapshotInventario": [
    {
      "id": "inv001",
      "nomeItem": "Sofá 3 lugares",
      "categoria": "Móvel",
      "quantidade": 1,
      "condicaoOriginal": "Ótimo",
      "ean": "N/A",
      "fotosOriginais": ["https://..."]
    }
  ],
  "userId": "uid_do_usuario",
  "criadoEm": "2025-02-01T10:00:00.000Z"
}

Tipos válidos

ValorUso
EntradaInício de contrato
SaídaEncerramento de contrato
RotinaVistoria periódica
EmergênciaSituação eventual (vazamento, etc.)

snapshotInventario

Array somente-leitura, populado automaticamente no POST. Representa o estado exato do inventário no momento da criação. Não pode ser alterado via PATCH.

itensVistoriados

Array editável com a avaliação de cada item durante a inspeção. Cada entrada segue o formato:
{
  "itemId": "inv001",
  "condicaoAtual": "Bom",
  "observacao": "Texto livre",
  "fotosUrls": ["https://..."]
}

Criar vistoria

imovelId
string
required
ID do imóvel. Deve pertencer ao usuário autenticado.
tipo
string
required
Um dos tipos válidos: Entrada, Saída, Rotina, Emergência.
dataVistoria
string
required
Data da vistoria no formato YYYY-MM-DD.
descricao
string
Observações gerais da vistoria.
POST /inspecoes
Cookie: imob_session=<session_cookie>
Content-Type: application/json

{
  "imovelId": "abc123",
  "tipo": "Entrada",
  "dataVistoria": "2025-02-01",
  "descricao": "Vistoria de entrada realizada com locatário presente."
}
Resposta 201
{
  "id": "vis001",
  "imovelId": "abc123",
  "tipo": "Entrada",
  "snapshotInventario": [ ... ],
  ...
}

Listar vistorias por imóvel

Ordenadas por dataVistoria decrescente.
GET /inspecoes/imovel/:imovelId
Cookie: imob_session=<session_cookie>

Buscar vistoria por ID

GET /inspecoes/:id
Cookie: imob_session=<session_cookie>

Atualizar vistoria

Permite editar itensVistoriados, fotosKeys, videosKeys, status e descricao. Os campos imovelId, userId e snapshotInventario são protegidos e ignorados mesmo que enviados.
PATCH /inspecoes/:id
Cookie: imob_session=<session_cookie>
Content-Type: application/json

{
  "status": "concluida",
  "itensVistoriados": [
    {
      "itemId": "inv001",
      "condicaoAtual": "Regular",
      "observacao": "Desgaste natural."
    }
  ]
}

Sincronizar com inventário

Aplica as condições avaliadas na vistoria (itensVistoriados) de volta ao inventário real do imóvel. Apenas itens com condicaoAtual diferente de "Não verificado" são atualizados.
POST /inspecoes/:id/sincronizar-inventario
Cookie: imob_session=<session_cookie>
Resposta 200
{
  "message": "Inventário atualizado com sucesso.",
  "atualizados": 5
}
Este endpoint é tipicamente chamado ao concluir uma vistoria de saída, para refletir o estado final dos itens no inventário.

Deletar vistoria

DELETE /inspecoes/:id
Cookie: imob_session=<session_cookie>