feat(envios/erp): add manual sync trigger endpoint and test UI

- POST /envios/erp/sync-now?ventana_min=N calls sync_recientes with configurable window
- sync_recientes() now returns a result dict (ok, total, created, updated, skipped, errores, detalle)
- ERP tab shows a "Prueba manual" card with ventana selector (2m / 30m / 2h / hoy) and result breakdown

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-07-16 21:40:54 -05:00
co-authored by Claude Sonnet 4.6
parent 8e27225326
commit dc18d128fb
3 changed files with 124 additions and 14 deletions
+12 -1
View File
@@ -1,6 +1,8 @@
from fastapi import APIRouter, Request, Depends
from fastapi import APIRouter, Request, Depends, Query
from fastapi.responses import JSONResponse
from app.auth import get_current_user
from app.database import get_connection
from app.services.scheduler import sync_recientes
router = APIRouter(prefix="/envios", tags=["envios"])
@@ -24,3 +26,12 @@ async def envios_erp(request: Request, user: dict = Depends(get_current_user)):
"wa_configurado": bool(wa_url and wa_key),
"wa_url": wa_url,
})
@router.post("/erp/sync-now")
async def erp_sync_now(
ventana_min: int = Query(default=30, ge=1, le=1440),
user: dict = Depends(get_current_user),
):
resultado = await sync_recientes(ventana_min=ventana_min)
return JSONResponse(resultado)