{
  "info": {
    "name": "YazRoute API v1",
    "description": "Postman Collection for YazRoute Vehicle Routing API v1. Set the collection variables `base_url`, `user_name`, and `api_key` before sending requests.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    {
      "key": "base_url",
      "value": "https://yazroute.com"
    },
    {
      "key": "user_name",
      "value": "your_username"
    },
    {
      "key": "api_key",
      "value": "yrk_xxxxx"
    },
    {
      "key": "request_id",
      "value": ""
    }
  ],
  "item": [
    {
      "name": "Submit VRP Solve Task",
      "event": [
        {
          "listen": "test",
          "script": {
            "exec": [
              "pm.test('submit accepted', function () {",
              "  pm.response.to.have.status(200);",
              "  const body = pm.response.json();",
              "  pm.expect(body.success).to.eql(true);",
              "  pm.expect(body.request_id).to.be.a('string');",
              "  pm.collectionVariables.set('request_id', body.request_id);",
              "});"
            ],
            "type": "text/javascript"
          }
        }
      ],
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          },
          {
            "key": "X-User-Name",
            "value": "{{user_name}}"
          },
          {
            "key": "X-Api-Key",
            "value": "{{api_key}}"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"name\": \"input_data_sample\",\n  \"objective\": \"min_total_cost\",\n  \"node_num\": 6,\n  \"node_positions\": [],\n  \"vehicle_num\": 2,\n  \"vehicle_fixed_costs\": [100, 120],\n  \"vehicle_unit_distance_costs\": [1.2, 1.5],\n  \"distance_matrix\": [\n    [0, 98, 60, 50, 61, 39],\n    [94, 0, 67, 60, 36, 91],\n    [11, 51, 0, 37, 62, 30],\n    [19, 44, 91, 0, 55, 51],\n    [27, 69, 75, 41, 0, 36],\n    [80, 44, 62, 12, 73, 0]\n  ],\n  \"start_nodes\": [0, 0],\n  \"end_nodes\": [0, 0],\n  \"node_demands\": [0, 10, 10, 10, 10, 10],\n  \"vehicles_capacity\": [100, 100],\n  \"node_time_windows\": [[0, 500], [0, 500], [0, 500], [0, 500], [0, 500], [0, 500]],\n  \"node_service_time\": [0, 2, 3, 4, 5, 6],\n  \"vehicle_speeds\": [30, 30],\n  \"max_working_hours\": 8,\n  \"base_start_time\": [9, 0, 0],\n  \"time_limit_seconds\": 120,\n  \"late_penalty_per_min\": null\n}"
        },
        "url": {
          "raw": "{{base_url}}/api/v1/solve",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "api",
            "v1",
            "solve"
          ]
        }
      }
    },
    {
      "name": "Poll Solve Result",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "X-User-Name",
            "value": "{{user_name}}"
          },
          {
            "key": "X-Api-Key",
            "value": "{{api_key}}"
          }
        ],
        "url": {
          "raw": "{{base_url}}/api/v1/solve/result/{{request_id}}",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "api",
            "v1",
            "solve",
            "result",
            "{{request_id}}"
          ]
        }
      }
    }
  ]
}
