O objeto Imóvel
{
"id": "abc123",
"nome": "Apto Centro",
"rua": "Rua das Flores",
"numero": "123",
"complemento": "Apto 42",
"bairro": "Centro",
"cidade": "São Paulo",
"estado": "SP",
"cep": "01310-100",
"quartos": 2,
"suites": 1,
"banheiros": 2,
"vagas": 1,
"area": 65,
"areaTotal": 70,
"andar": 4,
"tipoImovel": "Apartamento",
"tipoLocacao": "Residencial",
"valorAluguel": "2500",
"valorCondominio": "450",
"valorIPTU": "120",
"aceitaPets": true,
"mobiliado": "Semi-mobiliado",
"descricao": "Apartamento reformado, próximo ao metrô.",
"status": "DISPONIVEL",
"fotosKeys": [
{ "key": "imoveis/abc123/foto1.jpg", "url": "https://..." }
],
"fotoCapa": "https://...",
"nomeExibicao": "Apto Centro",
"userId": "uid_do_usuario",
"criadoEm": "2025-01-10T14:00:00.000Z"
}
Campos calculados
| Campo | Descrição |
|---|
fotoCapa | Primeira imagem do array fotosKeys que não seja vídeo. Fallback: primeiro item. |
nomeExibicao | nome se preenchido; caso contrário, "${rua}, ${numero}". |
Criar imóvel
Apelido do imóvel. Se não informado, o nomeExibicao usa o endereço.
status
string
default:"DISPONIVEL"
Status do imóvel. Valores: DISPONIVEL, ALUGADO, MANUTENCAO.
POST /imoveis
Cookie: imob_session=<session_cookie>
Content-Type: application/json
{
"cep": "01310-100",
"rua": "Rua das Flores",
"numero": "123",
"bairro": "Centro",
"cidade": "São Paulo",
"estado": "SP",
"nome": "Apto Centro",
"quartos": 2,
"valorAluguel": "2500"
}
{
"message": "Imovel cadastrado com sucesso",
"id": "abc123"
}
Listar imóveis
Retorna todos os imóveis do usuário autenticado, sem paginação. Ordenação em memória por criadoEm desc.
GET /imoveis
Cookie: imob_session=<session_cookie>
[
{
"id": "abc123",
"nomeExibicao": "Apto Centro",
"fotoCapa": "https://...",
"status": "DISPONIVEL",
...
}
]
Buscar imóvel por ID
GET /imoveis/:id
Cookie: imob_session=<session_cookie>
Atualizar imóvel
Aceita qualquer subconjunto de campos. Retorna 404 se não existir, 403 se pertencer a outro usuário.
PATCH /imoveis/:id
Cookie: imob_session=<session_cookie>
Content-Type: application/json
{
"status": "ALUGADO",
"valorAluguel": "2800"
}
{
"message": "Imovel atualizado com sucesso"
}
Deletar imóvel
A deleção é permanente (hard delete). Certifique-se de que não há contratos ativos vinculados antes de remover.
DELETE /imoveis/:id
Cookie: imob_session=<session_cookie>