Backend: integraciones y operacion
Integraciones externas
| Integracion | Uso principal |
|---|---|
| Firebase Admin | Auth, Firestore, FCM y operaciones de usuario |
| Firestore | Persistencia principal |
| Google Cloud Tasks | Automatizaciones diferidas |
| Infobip WhatsApp API | Mensajeria al cliente |
| Firebase Cloud Messaging | Push web al equipo |
Firebase Admin
Se usa para:
- validar tokens
- crear o eliminar usuarios de Auth
- interactuar con Firestore
- enviar push via FCM
- apoyar ciertos flujos de limpieza
Dependencia critica:
FIREBASE_CREDENTIALS_PATH
Firestore
FirestoreService centraliza:
- CRUD basico
- consultas paginadas
- subcolecciones
- conversion de timestamps
- logging de queries lentas
Google Cloud Tasks
Cloud Tasks soporta automatizaciones alrededor de appointments.
Hoy se documentan dos tasks por cita:
appointment-status-in-progressappointment-status-finished
El objetivo es mover automaticamente una cita cuando llega su hora.
Infobip WhatsApp
Se usa para plantillas de mensajeria como:
- confirmacion de cita
- modificacion o cancelacion
- cierre o finalizacion
Validaciones conocidas:
- el telefono se normaliza a formato internacional
- rechazos del proveedor se reportan como error controlado
Push web
El backend maneja suscripciones de dispositivos y puede enviar notificaciones al equipo.
Comportamientos documentados:
- un
deviceIdno debe quedar asociado a multiples usuarios a la vez - tokens invalidos se limpian automaticamente
- el link de destino se construye con
FRONTEND_APP_BASE_URL
Variables de entorno
Base
PORTFIREBASE_CREDENTIALS_PATHENV
WhatsApp / Infobip
INFOBIP_BASE_URLINFOBIP_API_KEYINFOBIP_WHATSAPP_SENDERINFOBIP_TIMEOUT_MS
Cloud Tasks
CLOUD_TASKS_PROJECT_IDCLOUD_TASKS_LOCATIONCLOUD_TASKS_QUEUECLOUD_TASKS_MAX_ATTEMPTSCLOUD_TASKS_TARGET_BASE_URLCLOUD_TASKS_INTERNAL_TOKEN
Frontend y push
FRONTEND_APP_BASE_URLPUSH_NOTIFICATIONS_ENABLED
Flujos operativos importantes
Alta de booking
- validar negocio, cliente, sede, servicio y horario
- consumir cupo de booking
- crear booking y appointments
- recalcular metricas economicas
- programar tasks
- intentar WhatsApp y push
Finalizacion de cita
- actualizar estado
- sincronizar booking si aplica
- actualizar metricas
- limpiar tasks pendientes
- si el booking termina, intentar WhatsApp de finalizacion
Reconciliacion de usage
El endpoint interno POST /business/usage/reconcile-today sirve para:
- activar o desactivar periodos de uso
- corregir cupos restantes
- recalcular
subscriptionStatus
Comandos de operacion
Segun package.json del backend:
npm run dev
npm run typecheck
npm run build
npm run start
Existe ademas un script de despliegue de desarrollo con gcloud run deploy.
Riesgos operativos actuales
- no hay suite automatizada de regresion
- no hay healthcheck dedicado
- el rate limit no es distribuido
- varias automatizaciones dependen de que el token interno y la base URL de Cloud Tasks esten correctos