{
  "info": {
    "name": "GPS Tracking API",
    "description": "Coleccion completa v1.0. Importa en Postman y configura la variable {{api_key}}. Usa 'demo_gps2024' para datos de prueba sin cuenta real.",
    "version": "1.0.0",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    { "key": "base_url",  "value": "https://developers.gpssoftwarenumberone.com/api" },
    { "key": "api_key",   "value": "demo_gps2024", "description": "Reemplaza con tu gps_live_... o usa demo_gps2024 para pruebas" },
    { "key": "device_id", "value": "1001" }
  ],
  "item": [
    {
      "name": "Health",
      "item": [
        {
          "name": "GET /health — Estado del servicio",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/health",
            "description": "Verifica disponibilidad. No requiere autenticacion."
          }
        }
      ]
    },
    {
      "name": "API Keys",
      "item": [
        {
          "name": "POST /v1/keys — Generar API Key",
          "request": {
            "method": "POST",
            "url": "{{base_url}}/v1/keys",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"platform_hash\": \"TU_USER_API_HASH\",\n  \"label\": \"Mi integracion\",\n  \"expires_in_days\": 365\n}"
            },
            "description": "Genera una API Key gps_live_... usando tu user_api_hash. La key solo se muestra una vez."
          }
        },
        {
          "name": "GET /v1/keys — Listar keys",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/v1/keys",
            "header": [{ "key": "Authorization", "value": "Bearer TU_PLATFORM_HASH" }],
            "description": "Lista todas las keys de tu cuenta. Usa tu platform_hash (no la gps_live_) para autenticar."
          }
        },
        {
          "name": "DELETE /v1/keys/:id — Revocar key",
          "request": {
            "method": "DELETE",
            "url": "{{base_url}}/v1/keys/ID_DE_LA_KEY",
            "header": [{ "key": "Authorization", "value": "Bearer TU_PLATFORM_HASH" }],
            "description": "Revoca una key de forma inmediata e irreversible."
          }
        }
      ]
    },
    {
      "name": "Dispositivos",
      "item": [
        {
          "name": "GET /v1/devices — Listar todos",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/v1/devices",
            "header": [{ "key": "Authorization", "value": "Bearer {{api_key}}" }],
            "description": "Lista todos los dispositivos con posicion y estado actuales."
          }
        },
        {
          "name": "GET /v1/devices/:id — Detalle",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/v1/devices/{{device_id}}",
            "header": [{ "key": "Authorization", "value": "Bearer {{api_key}}" }]
          }
        },
        {
          "name": "GET /v1/devices/:id/location — Ubicacion",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/v1/devices/{{device_id}}/location",
            "header": [{ "key": "Authorization", "value": "Bearer {{api_key}}" }],
            "description": "Ultima posicion GPS conocida del dispositivo."
          }
        }
      ]
    },
    {
      "name": "Historial",
      "item": [
        {
          "name": "GET /v1/history/:id — Recorrido del dia",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/v1/history/{{device_id}}?from=2026-06-01&to=2026-06-01",
              "host": ["{{base_url}}"],
              "path": ["v1", "history", "{{device_id}}"],
              "query": [
                { "key": "from", "value": "2026-06-01", "description": "Fecha inicio YYYY-MM-DD" },
                { "key": "to",   "value": "2026-06-01", "description": "Fecha fin YYYY-MM-DD" }
              ]
            },
            "header": [{ "key": "Authorization", "value": "Bearer {{api_key}}" }],
            "description": "Retorna posiciones, km recorridos, velocidad maxima y duraciones en movimiento/parado."
          }
        }
      ]
    },
    {
      "name": "Geocercas",
      "item": [
        {
          "name": "GET /v1/geofences — Listar todas",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/v1/geofences",
            "header": [{ "key": "Authorization", "value": "Bearer {{api_key}}" }]
          }
        },
        {
          "name": "GET /v1/geofences/:id — Detalle",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/v1/geofences/10",
            "header": [{ "key": "Authorization", "value": "Bearer {{api_key}}" }]
          }
        }
      ]
    },
    {
      "name": "Eventos",
      "item": [
        {
          "name": "GET /v1/events — Eventos recientes",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/v1/events?limit=20",
              "host": ["{{base_url}}"],
              "path": ["v1", "events"],
              "query": [
                { "key": "limit",     "value": "20" },
                { "key": "device_id", "value": "",   "disabled": true, "description": "Filtrar por dispositivo (opcional)" }
              ]
            },
            "header": [{ "key": "Authorization", "value": "Bearer {{api_key}}" }],
            "description": "Tipos: overspeed, geofence_in, geofence_out, ignition_on, ignition_off, sos."
          }
        }
      ]
    },
    {
      "name": "Alertas",
      "item": [
        {
          "name": "GET /v1/alerts — Listar alertas",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/v1/alerts",
            "header": [{ "key": "Authorization", "value": "Bearer {{api_key}}" }],
            "description": "Lista todas las alertas configuradas con tipo, estado y dispositivos asignados."
          }
        }
      ]
    },
    {
      "name": "Servicios de Mantenimiento",
      "item": [
        {
          "name": "GET /v1/services — Todos los servicios",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/v1/services",
            "header": [{ "key": "Authorization", "value": "Bearer {{api_key}}" }],
            "description": "Lista recordatorios de mantenimiento. expiration_by: odometer | engine_hours | days."
          }
        },
        {
          "name": "GET /v1/services?device_id — Por dispositivo",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/v1/services?device_id={{device_id}}",
              "host": ["{{base_url}}"],
              "path": ["v1", "services"],
              "query": [{ "key": "device_id", "value": "{{device_id}}" }]
            },
            "header": [{ "key": "Authorization", "value": "Bearer {{api_key}}" }]
          }
        },
        {
          "name": "GET /v1/services/:id — Detalle",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/v1/services/1",
            "header": [{ "key": "Authorization", "value": "Bearer {{api_key}}" }]
          }
        }
      ]
    },
    {
      "name": "Conductores",
      "item": [
        {
          "name": "GET /v1/drivers — Listar conductores",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/v1/drivers",
            "header": [{ "key": "Authorization", "value": "Bearer {{api_key}}" }],
            "description": "Lista conductores con nombre, RFID y vehiculo asignado."
          }
        },
        {
          "name": "GET /v1/drivers/:id — Detalle",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/v1/drivers/1",
            "header": [{ "key": "Authorization", "value": "Bearer {{api_key}}" }]
          }
        }
      ]
    }
  ]
}
