{
  "_readme": "Snapshot EXACTO (no un numero) de que rutas ejecutan consulta bajo un tenant valido con membresia activa. El control positivo compara contra este conjunto, no contra un umbral — un umbral (ej. '>=40') deja pasar que la mitad de las rutas se queden mudas sin que nadie se entere. Si el conjunto real se ACHICA respecto a este snapshot, la prueba falla: eso es 'el instrumento dejo de medir en parte'. Si una ruta legitimamente deja de consultar (por ejemplo, se cachea y ya no toca la base), se actualiza este archivo y se muestra como diff explicito, igual que la baseline de ofensas — nunca un ajuste silencioso.",
  "generatedFrom": "corrida real, VARIANTE 4 (tenant activo + membresia activa), checked=87 ejecutaron_consulta=54 (bajado de 87 a 54 con aprobacion explicita — ver _bajadoDe87a54)",
  "_bajadoDe87a54": {
    "motivo": "Sacar el acceso a datos de JwtStrategy (auth ya no adquiere la conexion del tenant en CADA request, solo en login/refresh) revelo que el snapshot de 87 estaba INFLADO por ese mismo acceso: la consulta propia de JwtStrategy se contaba como 'esta ruta consulto al tenant' sin importar si la ruta en si tocaba algo. El numero real, con este arnes (sin bodies ni query params reales, ':id' reemplazado por el literal '1'), es 54 — no un cambio de comportamiento de ninguna ruta.",
    "grupoA_nunca_tocan_base_confirmado_leyendo_el_codigo": [
      "GET /api/v1/catalogos/plantillas/ficha-vehicular — res.download() de un archivo estatico, ningun repositorio involucrado",
      "POST /api/v1/auth/logout — solo devuelve {message}, no persiste nada"
    ],
    "grupoB_no_cubiertas_por_limitacion_del_arnes_NO_VERIFICADAS_de_otra_forma": [
      "DELETE /api/v1/cotizaciones/:id/lineas/:lineaId",
      "DELETE /api/v1/cotizaciones/:id/lock",
      "GET /api/v1/clientes/search",
      "GET /api/v1/historial/search",
      "GET /api/v1/productos/search",
      "GET /api/v1/vehiculos/search",
      "PATCH /api/v1/auth/users/:id/activo",
      "PATCH /api/v1/cotizaciones/:id/aprobar",
      "PATCH /api/v1/cotizaciones/:id/lock",
      "PATCH /api/v1/ots/:id/estado",
      "POST /api/v1/auth/users",
      "POST /api/v1/catalogos/cosas-trae",
      "POST /api/v1/catalogos/tipos-dano",
      "POST /api/v1/catalogos/tipos-vehiculo",
      "POST /api/v1/catalogos/vehicular",
      "POST /api/v1/catalogos/vehicular/importar-excel",
      "POST /api/v1/clientes",
      "POST /api/v1/cotizaciones",
      "POST /api/v1/cotizaciones/:id/lineas",
      "POST /api/v1/mecanicos",
      "POST /api/v1/ots",
      "POST /api/v1/ots/:id/danos",
      "POST /api/v1/ots/:id/fotos",
      "POST /api/v1/productos",
      "POST /api/v1/sync/push",
      "POST /api/v1/uploads/:type",
      "POST /api/v1/vehiculos",
      "PUT /api/v1/catalogos/cosas-trae/:id",
      "PUT /api/v1/catalogos/tipos-dano/:id",
      "PUT /api/v1/catalogos/tipos-vehiculo/:id",
      "PUT /api/v1/cotizaciones/:id/lineas/:lineaId"
    ],
    "nota_grupo_b": "Estas 31 rutas fallan por falta de body/query param realista (@IsNotEmpty en el DTO, un ?q= que nunca se manda, un archivo que nunca se adjunta) — CONFIRMADO leyendo el codigo de una muestra representativa (CreateClienteDto, ClientesService.search()), no de las 31 una por una. Que hoy NO ejecuten consulta con este arnes NO es evidencia de que esten bien ni de que esten mal — simplemente no las cubre esta prueba. Distinto del Grupo A: ahi la ausencia de consulta esta PROBADA por el codigo, aca es una limitacion del instrumento, no una propiedad de la ruta."
  },
  "routes": [
    { "method": "DELETE", "path": "/api/v1/clientes/:tarjeta" },
    { "method": "DELETE", "path": "/api/v1/ots/:id/danos/:danoId" },
    { "method": "DELETE", "path": "/api/v1/ots/:id/fotos/:fotoId" },
    { "method": "DELETE", "path": "/api/v1/productos/:plu" },
    { "method": "GET", "path": "/api/v1/auth/me" },
    { "method": "GET", "path": "/api/v1/auth/tiendas" },
    { "method": "GET", "path": "/api/v1/auth/users" },
    { "method": "GET", "path": "/api/v1/catalogos/cosas-trae" },
    { "method": "GET", "path": "/api/v1/catalogos/tipos-dano" },
    { "method": "GET", "path": "/api/v1/catalogos/tipos-vehiculo" },
    { "method": "GET", "path": "/api/v1/catalogos/vehicular" },
    { "method": "GET", "path": "/api/v1/clientes" },
    { "method": "GET", "path": "/api/v1/clientes/:tarjeta" },
    { "method": "GET", "path": "/api/v1/cotizaciones/:id" },
    { "method": "GET", "path": "/api/v1/cotizaciones/:id/lock" },
    { "method": "GET", "path": "/api/v1/cotizaciones/:id/versiones" },
    { "method": "GET", "path": "/api/v1/cotizaciones/ot/:otId" },
    { "method": "GET", "path": "/api/v1/historial/cliente/:tarjeta" },
    { "method": "GET", "path": "/api/v1/historial/placa/:placa" },
    { "method": "GET", "path": "/api/v1/mecanicos" },
    { "method": "GET", "path": "/api/v1/ots" },
    { "method": "GET", "path": "/api/v1/ots/:id" },
    { "method": "GET", "path": "/api/v1/ots/:id/eventos" },
    { "method": "GET", "path": "/api/v1/ots/numero/:numeroOt" },
    { "method": "GET", "path": "/api/v1/productos/:plu" },
    { "method": "GET", "path": "/api/v1/productos/top" },
    { "method": "GET", "path": "/api/v1/sync/pull" },
    { "method": "GET", "path": "/api/v1/vehiculos" },
    { "method": "GET", "path": "/api/v1/vehiculos/:id" },
    { "method": "GET", "path": "/api/v1/vehiculos/placa/:placa" },
    { "method": "PATCH", "path": "/api/v1/catalogos/cosas-trae/:id/activar" },
    { "method": "PATCH", "path": "/api/v1/catalogos/cosas-trae/:id/inactivar" },
    { "method": "PATCH", "path": "/api/v1/catalogos/tipos-dano/:id/activar" },
    { "method": "PATCH", "path": "/api/v1/catalogos/tipos-dano/:id/inactivar" },
    { "method": "PATCH", "path": "/api/v1/catalogos/tipos-vehiculo/:id/activar" },
    { "method": "PATCH", "path": "/api/v1/catalogos/tipos-vehiculo/:id/inactivar" },
    { "method": "PATCH", "path": "/api/v1/catalogos/vehicular/:id/activar" },
    { "method": "PATCH", "path": "/api/v1/catalogos/vehicular/:id/inactivar" },
    { "method": "PATCH", "path": "/api/v1/mecanicos/:id/activo" },
    { "method": "POST", "path": "/api/v1/catalogos/seed" },
    { "method": "POST", "path": "/api/v1/cotizaciones/:id/lock" },
    { "method": "POST", "path": "/api/v1/cotizaciones/:id/public-link" },
    { "method": "POST", "path": "/api/v1/ots/:id/firmas" },
    { "method": "POST", "path": "/api/v1/ots/:id/pdf" },
    { "method": "POST", "path": "/api/v1/whatsapp/cotizaciones/:id/enviar" },
    { "method": "POST", "path": "/api/v1/whatsapp/ots/:id/estado" },
    { "method": "PUT", "path": "/api/v1/auth/tiendas/:id" },
    { "method": "PUT", "path": "/api/v1/auth/users/:id" },
    { "method": "PUT", "path": "/api/v1/catalogos/vehicular/:id" },
    { "method": "PUT", "path": "/api/v1/clientes/:tarjeta" },
    { "method": "PUT", "path": "/api/v1/mecanicos/:id" },
    { "method": "PUT", "path": "/api/v1/ots/:id" },
    { "method": "PUT", "path": "/api/v1/productos/:plu" },
    { "method": "PUT", "path": "/api/v1/vehiculos/:id" }
  ]
}
