{
  "info": {
    "name": "LoadEng Test Lab",
    "_postman_id": "loadeng-test-lab-v1",
    "description": "Complete API collection for LoadEng Test Lab. Import into LoadEng or Postman to test all endpoints.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    { "key": "base_url", "value": "https://lab.engardens.com" },
    { "key": "token", "value": "" }
  ],
  "item": [
    {
      "name": "Auth",
      "item": [
        {
          "name": "Register",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\"username\": \"testuser\", \"password\": \"testpass123\", \"email\": \"test@example.com\"}" },
            "url": { "raw": "{{base_url}}/api/auth/register", "host": ["{{base_url}}"], "path": ["api", "auth", "register"] }
          }
        },
        {
          "name": "Login",
          "event": [
            {
              "listen": "test",
              "script": { "exec": ["var json = pm.response.json();", "if(json.token) pm.collectionVariables.set('token', json.token);"] }
            }
          ],
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\"username\": \"admin\", \"password\": \"admin\"}" },
            "url": { "raw": "{{base_url}}/api/auth/login", "host": ["{{base_url}}"], "path": ["api", "auth", "login"] }
          }
        },
        {
          "name": "Logout",
          "request": {
            "method": "POST",
            "header": [{ "key": "Authorization", "value": "Bearer {{token}}" }],
            "url": { "raw": "{{base_url}}/api/auth/logout", "host": ["{{base_url}}"], "path": ["api", "auth", "logout"] }
          }
        }
      ]
    },
    {
      "name": "Users CRUD",
      "item": [
        {
          "name": "List Users",
          "request": {
            "method": "GET",
            "header": [{ "key": "Authorization", "value": "Bearer {{token}}" }],
            "url": { "raw": "{{base_url}}/api/users?limit=50&offset=0", "host": ["{{base_url}}"], "path": ["api", "users"], "query": [{ "key": "limit", "value": "50" }, { "key": "offset", "value": "0" }] }
          }
        },
        {
          "name": "Create User",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }, { "key": "Authorization", "value": "Bearer {{token}}" }],
            "body": { "mode": "raw", "raw": "{\"username\": \"newuser\", \"password\": \"pass123\", \"email\": \"new@example.com\"}" },
            "url": { "raw": "{{base_url}}/api/users", "host": ["{{base_url}}"], "path": ["api", "users"] }
          }
        },
        {
          "name": "Get User",
          "request": {
            "method": "GET",
            "header": [{ "key": "Authorization", "value": "Bearer {{token}}" }],
            "url": { "raw": "{{base_url}}/api/users/{{user_id}}", "host": ["{{base_url}}"], "path": ["api", "users", "{{user_id}}"] }
          }
        },
        {
          "name": "Update User",
          "request": {
            "method": "PUT",
            "header": [{ "key": "Content-Type", "value": "application/json" }, { "key": "Authorization", "value": "Bearer {{token}}" }],
            "body": { "mode": "raw", "raw": "{\"email\": \"updated@example.com\"}" },
            "url": { "raw": "{{base_url}}/api/users/{{user_id}}", "host": ["{{base_url}}"], "path": ["api", "users", "{{user_id}}"] }
          }
        },
        {
          "name": "Delete User",
          "request": {
            "method": "DELETE",
            "header": [{ "key": "Authorization", "value": "Bearer {{token}}" }],
            "url": { "raw": "{{base_url}}/api/users/{{user_id}}", "host": ["{{base_url}}"], "path": ["api", "users", "{{user_id}}"] }
          }
        }
      ]
    },
    {
      "name": "Files",
      "item": [
        {
          "name": "Upload File",
          "request": {
            "method": "POST",
            "header": [{ "key": "Authorization", "value": "Bearer {{token}}" }],
            "body": { "mode": "formdata", "formdata": [{ "key": "file", "type": "file", "src": "" }] },
            "url": { "raw": "{{base_url}}/api/files/upload", "host": ["{{base_url}}"], "path": ["api", "files", "upload"] }
          }
        }
      ]
    },
    {
      "name": "Test Endpoints",
      "item": [
        {
          "name": "Slow Response (3s)",
          "request": {
            "method": "GET",
            "url": { "raw": "{{base_url}}/api/test/slow?delay=3000", "host": ["{{base_url}}"], "path": ["api", "test", "slow"], "query": [{ "key": "delay", "value": "3000" }] }
          }
        },
        {
          "name": "Error Simulation (500)",
          "request": {
            "method": "GET",
            "url": { "raw": "{{base_url}}/api/test/error?status=500&message=Test+Error", "host": ["{{base_url}}"], "path": ["api", "test", "error"], "query": [{ "key": "status", "value": "500" }, { "key": "message", "value": "Test Error" }] }
          }
        },
        {
          "name": "Chunked Response",
          "request": {
            "method": "GET",
            "url": { "raw": "{{base_url}}/api/test/chunked?chunks=5&interval=500", "host": ["{{base_url}}"], "path": ["api", "test", "chunked"], "query": [{ "key": "chunks", "value": "5" }, { "key": "interval", "value": "500" }] }
          }
        },
        {
          "name": "Echo",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\"hello\": \"world\", \"test\": true}" },
            "url": { "raw": "{{base_url}}/api/test/echo", "host": ["{{base_url}}"], "path": ["api", "test", "echo"] }
          }
        }
      ]
    },
    {
      "name": "System",
      "item": [
        {
          "name": "Health Check",
          "request": {
            "method": "GET",
            "url": { "raw": "{{base_url}}/api/health", "host": ["{{base_url}}"], "path": ["api", "health"] }
          }
        },
        {
          "name": "Metrics",
          "request": {
            "method": "GET",
            "url": { "raw": "{{base_url}}/api/metrics", "host": ["{{base_url}}"], "path": ["api", "metrics"] }
          }
        },
        {
          "name": "Clear Database",
          "request": {
            "method": "POST",
            "url": { "raw": "{{base_url}}/api/metrics/clear-db", "host": ["{{base_url}}"], "path": ["api", "metrics", "clear-db"] }
          }
        }
      ]
    }
  ]
}
