Un proyecto es el contenedor de nivel superior para un desarrollo inmobiliario. Agrupa unidades y guarda metadata compartida (ubicación, banda de precios, amenidades).
Listar proyectos
Scope: projects:read. Paginado.
Query parameters
Response 200
data[] paginado. Cada item incluye un campo derivado unitCount.
Crear un proyecto
Scope: projects:write.
Request body
Solo name es requerido. Puedes incluir un array units[] opcional para crear unidades iniciales en la misma llamada.
status: draft | published | archived (default draft).
Response 201
Efectos secundarios de webhooks
Se dispara un evento project.created. Si se proveyó units[], también se dispara un unit.created por cada unidad.
Obtener un proyecto
Scope: projects:read. Incluye el array embebido units[] con id, nombre, tipo, precio, área, estado y timestamps de cada unidad.
Actualizar un proyecto
Scope: projects:write. Todos los campos opcionales, debe proveerse al menos uno.
Efectos secundarios de webhooks
Se dispara un evento project.updated.
Eliminar un proyecto
Scope: projects:write.
Eliminar un proyecto también elimina todas sus unidades. Esto es irreversible.
Response 200
Efectos secundarios de webhooks
Se dispara un evento project.deleted.