# ============================================ # MONDAY.COM # ============================================ MONDAY_API_KEY="PONER_API_KEY_DE_MONDAY" MONDAY_API_URL="https://api.monday.com/v2" MONDAY_WORKSPACE="Frasa-CAS" # Board IDs del workspace Frasa-CAS (ya creados) MONDAY_BOARD_CONTACTOS="18427678476" MONDAY_BOARD_DESARROLLOS="18427678485" MONDAY_BOARD_UNIDADES="18427678487" MONDAY_BOARD_LEADS="18427678493" MONDAY_BOARD_OPORTUNIDADES="18427678497" MONDAY_BOARD_APARTADO="18427678515" MONDAY_BOARD_VENTAS="18427678520" # Tableros creados por api-gateway/scripts/setup-crm.ts (npm run setup:crm) MONDAY_BOARD_MOTIVOS="18427702505" MONDAY_BOARD_ACTIVIDADES="18427702517" # Tableros de obra/escrituras alimentados por api-gateway/scripts/sync-obra-estatus.py # (referencia; el script los trae como constantes) MONDAY_BOARD_FLUJO_ESCRITURAS="18429252054" MONDAY_BOARD_SALDOS_FAVOR="18429252069" # 'false' desactiva la creación de actividades en Monday (default true) ACTIVIDADES_ENABLED="true" # Automatizaciones del tablero Leads (api-gateway) # IDs de usuario Monday separados por coma para el round-robin; # vacío = auto-detectar usuarios no-guest del workspace MONDAY_RR_USER_IDS="" # Días sin actividad para recordar un lead (update automático en el item) INACTIVIDAD_DIAS="10" # Cron de polling de respaldo (asigna vendedor a leads nuevos sin asignar) POLL_CRON="*/5 * * * *" # 'false' desactiva los crons (los endpoints /api/automatizaciones siguen vivos) MONDAY_AUTOMATIONS_ENABLED="true" # ============================================ # BASE DE DATOS (fase API Gateway) # ============================================ DATABASE_URL="postgresql://frasa_user:CAMBIAR@postgres:5432/frasa_db?schema=public" POSTGRES_USER=frasa_user POSTGRES_PASSWORD=CAMBIAR POSTGRES_DB=frasa_db REDIS_URL="redis://redis:6379" # ============================================ # SEGURIDAD # ============================================ JWT_SECRET="cambiar_por_secreto_largo_y_aleatorio" JWT_EXPIRES_IN="7d" # 'false' desactiva la exigencia de token en /api (tests/arranque temprano) AUTH_ENABLED=true # Password inicial del usuario 'admin' sembrado por npm run seed:usuarios ADMIN_PASSWORD="Frasa2026" # Token compartido script→API en este host (sync de estatus → alertas de # inventario). Generar con: openssl rand -hex 24 INTERNAL_SYNC_TOKEN="" # ============================================ # APP CONFIG # ============================================ NODE_ENV=development PORT=3000 # ============================================ # AGENTE IA (proveedor NAN, OpenAI-compatible) # ============================================ NAN_API_KEY="PONER_API_KEY_DE_NAN" NAN_BASE_URL="https://api.nan.builders/v1" NAN_CHAT_MODEL="qwen3.6" NAN_EMBED_MODEL="qwen3-embedding" # Umbral mínimo de similitud coseno para recuperar contexto (0-1) AI_MIN_SCORE="0.3" # Ronda 2: horas antes de escalar un lead asignado que sigue en NUEVO/Intento de contacto LEAD_ESCALADO_HORAS=48 # User ID Monday del coordinador para escalados; vacio = actividad al vendedor asignado MONDAY_COORDINADOR_USER_ID= # User ID Monday de la cuenta COMPARTIDA de vendedores de piso (usan solo la # app, todos ligados a una sola cuenta Monday). Con ella, Mi dia filtra "lo mio" # por captura local y no por la columna people. 0/vacio = desactivado MONDAY_VENDEDOR_COMPARTIDO_ID= # Recordatorios de cobranza (pagos por vencer / vencidos) # Cron del escaneo diario (default "30 9 * * *") RECORDATORIOS_CRON="30 9 * * *" # Días de anticipación para el recordatorio "próximo a vencer" (default 3) RECORDATORIO_DIAS_ANTES=3 # Cada cuántos días se re-recuerda un pago que sigue vencido (default 7) RECORDATORIO_REVOLVER_DIAS=7