{"service":"wk-eta","version":"dev","description":"Servicio de cálculo de ETA, rutas y matrices de distancias","perfil":"TRUCK (optimizado para camiones)","endpoints":{"GET /health":"Health check del servicio y OSRM sidecar","GET /stats":"Estadísticas de uso y performance","POST /calcular-ruta":"Calcula ruta entre origen y destinos","POST /calcular-ruta-codigo":"Calcula ruta usando código de ruta (IDs de destinos separados por guiones)","POST /calcular-eta":"Calcula ETA a uno o más destinos","POST /eta-simple":"ETA ultra-rapido (<50ms) con 4 niveles de fallback","POST /eta-simple-batch":"ETA batch para multiples destinos (OSRM /table)","POST /eta-viajes-batch":"ETA masivo para multiples viajes (max 100)","POST /matriz-distancias":"Calcula matriz NxN de tiempos/distancias","POST /optimizar-ruta":"Optimiza orden de visitas (TSP)","POST /match":"Map matching: alinea trazas GPS a red vial real","POST /resumen-viaje":"Resumen de viaje realizado con módulos opcionales (costos, alertas, riesgo, etc.)","POST /comparar-viaje":"Compara planificado vs real (diferencias, desvíos)","POST /calcular-km":"Km y tiempos por unidad/período (ranking conductores)","POST /clear-cache":"Limpia cache de ETAs"},"options_disponibles":{"fechaInicio":"Fecha/hora de inicio del viaje (formato: \"YYYY-MM-DD HH:mm:ss\"). Si no se envía, usa la hora actual del servidor (America/Santiago)","applyTraffic":"Aplicar factor de tráfico según hora (default: true)","useCache":"Usar cache para rutas frecuentes (default: true)","includeSteps":"Incluir instrucciones de navegación (default: false)","roundtrip":"Volver al origen en optimización (default: false)"},"factores_trafico":{"Lunes a Viernes 07:00-09:00":"1.4 (+40%)","Lunes a Viernes 17:00-20:00":"1.5 (+50%)","Lunes a Viernes 22:00-05:00":"0.85 (-15%)","Sábado y Domingo":"0.9 (-10%)","Resto del día":"1.0 (sin ajuste)"},"examples":{"eta-simple":{"lat":-33.45,"lon":-70.66,"destino_lat":-33.42,"destino_lon":-70.6,"velocidad":45,"kmEta":12.5,"fecha_traza":"2025-02-03 08:00:00"},"eta-simple-batch":{"origen":{"lat":-33.45,"lon":-70.66},"destinos":[{"lat":-33.42,"lon":-70.6},{"lat":-33.4,"lon":-70.58}],"fecha_traza":"2025-02-03 08:00:00"},"eta-viajes-batch":{"viajes":[{"id_viaje":12345,"lat":-33.45,"lon":-70.66,"destino_lat":-33.42,"destino_lon":-70.6,"fecha_traza":"2025-02-03 08:00:00"},{"id_viaje":12346,"lat":-33.4,"lon":-70.58,"destino_lat":-33.48,"destino_lon":-70.62}]},"calcular-eta":{"posicion":{"lat":-33.45,"lon":-70.66},"destino":{"lat":-33.42,"lon":-70.6,"id":"SUC001"},"options":{"fechaInicio":"2025-02-03 08:00:00"}},"calcular-ruta":{"origen":{"lat":-33.45,"lon":-70.66},"destinos":[{"lat":-33.42,"lon":-70.6,"id":"SUC001"}],"options":{"fechaInicio":"2025-02-03 08:00:00"}},"calcular-ruta-codigo":{"cod_ruta":"26093-26098-26099-26637","options":{"includeSteps":false,"applyTraffic":true,"fechaInicio":"2025-02-03 08:00:00"}},"matriz-distancias":{"puntos":[{"lat":-33.45,"lon":-70.66,"id":"A"},{"lat":-33.42,"lon":-70.6,"id":"B"},{"lat":-33.4,"lon":-70.58,"id":"C"}],"options":{"fechaInicio":"2025-02-03 14:00:00"}},"optimizar-ruta":{"origen":{"lat":-33.45,"lon":-70.66},"destinos":[{"lat":-33.42,"lon":-70.6,"id":"SUC001"},{"lat":-33.4,"lon":-70.58,"id":"SUC002"}],"options":{"roundtrip":false,"fechaInicio":"2025-02-03 08:00:00"}},"match":{"trazas":[{"lat":-33.45,"lon":-70.66,"timestamp":1706700000},{"lat":-33.451,"lon":-70.658,"timestamp":1706700060},{"lat":-33.453,"lon":-70.655,"timestamp":1706700120}],"options":{"radiuses":50,"gaps":"split"}},"resumen-viaje":{"id_viaje":123456,"paradas":true,"alertas":true,"costos_combustible":{"activo":true,"rendimiento":2.1,"precio":980,"tipo_combustible":"diesel","costo_ralenti":true},"productividad":true,"impacto_ambiental":true,"cumplimiento":true,"riesgo":true},"comparar-viaje":{"id_viaje":123456},"calcular-km":{"id_unidad":33025,"fecha_inicio":"2025-02-01 08:00:00","fecha_fin":"2025-02-01 18:00:00"}}}