# Crear API Express.js para Propiedades Inmobiliarias con Spark API ## đź“‹ CONTEXTO Necesito migrar un plugin de WordPress que consume la API de Spark (FlexMLS) a una arquitectura moderna con Express.js + Base de Datos + Worker de sincronizaciĂłn. Actualmente tengo un plugin WordPress que: - Consume Spark API directamente en cada request (lento: 400-600ms) - Tiene 17 endpoints REST - Usa autenticaciĂłn OAuth 1.0 con tokens de 24 horas - Maneja 4,518 propiedades inmobiliarias - LĂmite de Spark API: máximo 25 resultados por request ## 🎯 OBJETIVO Crear una API Express.js que: 1. **Cache todas las propiedades en PostgreSQL** 2. **Sirva requests desde DB (rápido: 10-20ms)** 3. **Worker que sincronice con Spark cada 15 minutos** 4. **Soporte bĂşsqueda, filtros y agregaciones** ## 🔑 CREDENCIALES SPARK API ```javascript const SPARK_CONFIG = { apiKey: 'pvr_garciaa_key_1', apiSecret: 'teSNppb9Y3nNWx8cTVQQN', baseUrl: 'https://sparkapi.com', tokenDuration: 24 * 60 * 60 * 1000, // 24 horas cacheDuration: 23 * 60 * 60 * 1000 // 23 horas };# Crear API Express.js para Propiedades Inmobiliarias con Spark API ## đź“‹ CONTEXTO Necesito migrar un plugin de WordPress que consume la API de Spark (FlexMLS) a una arquitectura moderna con Express.js + Base de Datos + Worker de sincronizaciĂłn. Actualmente tengo un plugin WordPress que: - Consume Spark API directamente en cada request (lento: 400-600ms) - Tiene 17 endpoints REST - Usa autenticaciĂłn OAuth 1.0 con tokens de 24 horas - Maneja 4,518 propiedades inmobiliarias - LĂmite de Spark API: máximo 25 resultados por request ## 🎯 OBJETIVO Crear una API Express.js que: 1. **Cache todas las propiedades en PostgreSQL** 2. **Sirva requests desde DB (rápido: 10-20ms)** 3. **Worker que sincronice con Spark cada 15 minutos** 4. **Soporte bĂşsqueda, filtros y agregaciones** ## 🔑 CREDENCIALES SPARK API ```javascript const SPARK_CONFIG = { apiKey: 'pvr_garciaa_key_1', apiSecret: 'teSNppb9Y3nNWx8cTVQQN', baseUrl: 'https://sparkapi.com', tokenDuration: 24 * 60 * 60 * 1000, // 24 horas cacheDuration: 23 * 60 * 60 * 1000 // 23 horas };