﻿{
  "info": {
    "_postman_id": "0a7037b6-c7aa-4cd5-b393-9874b6e96f76",
    "name": "WastePilot API (v1)",
    "description": "Complete Postman collection for **every** `api/v1` route in ArcaneWaste / Waste Pilot.\n\n## Current order flow (assets)\n- Fleet units are **assets** / **asset specifications** (dumpster APIs removed).\n- Customer: `GET /customer/orders`, `GET /customer/orders/ongoing`, `POST /customer/order/billing`, `POST /customer/orders`\n- Company: `GET /orders` (filters via `OrderService`), `GET /orders/assignable` (needs job assignment)\n- Date/extension/early-return/reschedule: **order-change-requests** only (customer submits â†’ company approves/rejects)\n- **Service:** `App\\Services\\OrderChangeRequest\\OrderChangeRequestService`\n- **Early return approve:** `is_early_return=true`, pickup job moves; order dates/billing unchanged\n- **Company jobs:** `GET|POST /order/jobs`, `PUT /order/jobs/{id}`, `PUT /order/jobs/bulk`, `DELETE /order/jobs/{id}`. Recursive trees. Legacy flat list: `GET /jobs`. Removed: bulk create, bulk-plan, reorder.\n- Removed: `POST /order/{order}/job/{job}/shift`, company-initiated OCR store\n\n## Customer profile / payments (current)\n- Profile: `GET|PUT /customer/profile` (no email/address update â€” use `/customer/addresses`)\n- Dashboard: `GET /customer/dashboard`\n- Demerit points: `GET /customer/demerit-points`\n- Pending dues: `GET /customer/orders/pending-dues`, `GET /customer/total/pending-dues`\n- Pay: `POST /customer/orders/{order}/pay`, `POST /customer/payments/pay-all-dues`\n- Transactions: `GET /customer/transactions`, `GET /customer/transactions/{transaction}`\n- Finix onboarding: `POST /customer/finix/identity`, `POST /customer/finix/payment-instrument`\n\n## Import\n1. Import this collection **and** `WastePilot-API.environment.json`.\n2. Select environment **WastePilot API - Local**.\n3. Set `base_url` (defaults to `http://arcanewaste.test`).\n4. Set emails (`company_email`, `driver_email`, `customer_email`, `admin_email`), shared `password`, and optional `device_token` / `device_type` / `device_identifier` / `otp`.\n5. Run **00 Auth > Login** â€” test scripts save `company_token`, `driver_token`, `customer_token`, `admin_token`.\n\n## List filters\nOrder list endpoints expose full `OrderService::applyOrderListFilters` query params (disabled by default). Enable a param and set the matching environment variable when filtering.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "_exporter_id": "21522777"
  },
  "item": [
    {
      "name": "00 Auth",
      "item": [
        {
          "name": "Login",
          "item": [
            {
              "name": "Login as Company",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test('Login successful', () => pm.expect(pm.response.code).to.be.oneOf([200, 201]));",
                      "const json = pm.response.json();",
                      "if (json.access_token) pm.environment.set('company_token', json.access_token);",
                      "const companyUserId = json?.data?.id;",
                      "if (companyUserId) pm.environment.set('company_user_id', String(companyUserId));",
                      "const companyId = json?.data?.company?.id;",
                      "if (companyId) pm.environment.set('company_id', String(companyId));"
                    ]
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "noauth"
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"email\": \"{{company_email}}\", // required\n    \"password\": \"{{password}}\", // required\n    \"device_token\": \"{{device_token}}\", // optional\n    \"device_type\": \"{{device_type}}\", // required when device_token is sent\n    \"device_identifier\": \"{{device_identifier}}\" // required when device_token is sent\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/auth/login",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "login"
                  ]
                },
                "description": "`POST /api/v1/auth/login`\n\n| Field | Rules |\n|---|---|\n| email | required, string, email, max:255 |\n| password | required, string, min:6 |\n| device_token | nullable, string |\n| device_type | required_with:device_token, nullable, string |\n| device_identifier | required_with:device_token, nullable, string |\n\nSaves the returned token (and related id, if present) into the environment."
              },
              "response": []
            },
            {
              "name": "Login as Driver",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test('Login successful', () => pm.expect(pm.response.code).to.be.oneOf([200, 201]));",
                      "const json = pm.response.json();",
                      "if (json.access_token) pm.environment.set('driver_token', json.access_token);",
                      "const driverId = json?.data?.driver?.id;",
                      "if (driverId) pm.environment.set('driver_id', String(driverId));"
                    ]
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "noauth"
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"email\": \"{{driver_email}}\", // required\n    \"password\": \"{{password}}\", // required\n    \"device_token\": \"{{device_token}}\", // optional\n    \"device_type\": \"{{device_type}}\", // required when device_token is sent\n    \"device_identifier\": \"{{device_identifier}}\" // required when device_token is sent\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/auth/login",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "login"
                  ]
                },
                "description": "`POST /api/v1/auth/login`\n\n| Field | Rules |\n|---|---|\n| email | required, string, email, max:255 |\n| password | required, string, min:6 |\n| device_token | nullable, string |\n| device_type | required_with:device_token, nullable, string |\n| device_identifier | required_with:device_token, nullable, string |\n\nSaves the returned token (and related id, if present) into the environment."
              },
              "response": []
            },
            {
              "name": "Login as Customer",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test('Login successful', () => pm.expect(pm.response.code).to.be.oneOf([200, 201]));",
                      "const json = pm.response.json();",
                      "if (json.access_token) pm.environment.set('customer_token', json.access_token);",
                      "const customerId = json?.data?.customer?.id;",
                      "if (customerId) pm.environment.set('customer_id', String(customerId));"
                    ]
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "noauth"
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"email\": \"{{customer_email}}\", // required\n    \"password\": \"{{password}}\", // required\n    \"device_token\": \"{{device_token}}\", // optional\n    \"device_type\": \"{{device_type}}\", // required when device_token is sent\n    \"device_identifier\": \"{{device_identifier}}\" // required when device_token is sent\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/auth/login",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "login"
                  ]
                },
                "description": "`POST /api/v1/auth/login`\n\n| Field | Rules |\n|---|---|\n| email | required, string, email, max:255 |\n| password | required, string, min:6 |\n| device_token | nullable, string |\n| device_type | required_with:device_token, nullable, string |\n| device_identifier | required_with:device_token, nullable, string |\n\nSaves the returned token (and related id, if present) into the environment."
              },
              "response": []
            },
            {
              "name": "Login as Admin",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test('Login successful', () => pm.expect(pm.response.code).to.be.oneOf([200, 201]));",
                      "const json = pm.response.json();",
                      "if (json.access_token) pm.environment.set('admin_token', json.access_token);"
                    ]
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "noauth"
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"email\": \"{{admin_email}}\", // required\n    \"password\": \"{{password}}\", // required\n    \"device_token\": \"{{device_token}}\", // optional\n    \"device_type\": \"{{device_type}}\", // optional\n    \"device_identifier\": \"{{device_identifier}}\" // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/auth/login",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "auth",
                    "login"
                  ]
                },
                "description": "`POST /api/v1/admin/auth/login`\n\n| Field | Rules |\n|---|---|\n| email | required, string, email, max:255 |\n| password | required, string, min:6 |\n\nSaves the returned token (and related id, if present) into the environment."
              },
              "response": []
            }
          ]
        },
        {
          "name": "Auth",
          "item": [
            {
              "name": "Forgot Password",
              "request": {
                "auth": {
                  "type": "noauth"
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"email\": \"{{company_email}}\" // required\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/auth/forgot-password",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "forgot-password"
                  ]
                },
                "description": "`POST /api/v1/auth/forgot-password`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\AuthController@forgotPassword`\n**Middleware:** `api, throttle:5,1`\n**Validation:** `App\\Http\\Requests\\Auth\\ForgetPasswordRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| email | required, email, exists:users,email |"
              },
              "response": []
            },
            {
              "name": "Get Otp",
              "request": {
                "auth": {
                  "type": "noauth"
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"email\": \"{{company_email}}\" // required\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/auth/get-otp",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "get-otp"
                  ]
                },
                "description": "`POST /api/v1/auth/get-otp`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\AuthController@getOtp`\n**Middleware:** `api, throttle:5,1`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Company\\GetOtpRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| email | required, email, unique:users,email |"
              },
              "response": []
            },
            {
              "name": "Logout",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"device_identifier\": \"{{device_identifier}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/auth/logout",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "logout"
                  ]
                },
                "description": "`POST /api/v1/auth/logout`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\AuthController@logout`\n**Middleware:** `api, jwt.verify`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Me",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/auth/me",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "me"
                  ]
                },
                "description": "`GET /api/v1/auth/me`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\AuthController@me`\n**Middleware:** `api, jwt.verify`\n**Validation:** none.\n\nReturns the same `data` payload as `POST /api/v1/auth/login`: `UserWithCompanyDetailResource` (company, customer, or driver nested by user type). Does not include `access_token`.\n"
              },
              "response": []
            },
            {
              "name": "Refresh Token",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test('Refresh successful', () => pm.expect(pm.response.code).to.eql(200));",
                      "const json = pm.response.json();",
                      "if (json.access_token) {",
                      "    // Prefer updating whichever actor token was used; default company_token for shared auth refresh.",
                      "    pm.environment.set('company_token', json.access_token);",
                      "    pm.environment.set('token', json.access_token);",
                      "}"
                    ]
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/auth/refresh-token",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "refresh-token"
                  ]
                },
                "description": "`POST /api/v1/auth/refresh-token`\n\n**Controller:** `App\\\\Http\\\\Controllers\\\\Api\\\\V1\\\\AuthController@refresh`\n**Middleware:** `api, throttle:5,1`\n\nSend `Authorization: Bearer {{company_token}}` (or the token you want to refresh).\nReturns a **new** `access_token` and blacklists the previous one â€” always replace your saved token with the response value. Calling refresh again with the old token returns \"The token has been blacklisted\".\n"
              },
              "response": []
            },
            {
              "name": "Register",
              "request": {
                "auth": {
                  "type": "noauth"
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"email\": \"{{company_email}}\", // required\n    \"password\": \"{{password}}\", // required\n    \"password_confirmation\": \"{{password}}\", // required (must match password)\n    \"otp\": \"{{otp}}\", // required\n    \"device_token\": \"{{device_token}}\", // optional\n    \"device_type\": \"{{device_type}}\", // optional\n    \"device_identifier\": \"{{device_identifier}}\" // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/auth/register",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "register"
                  ]
                },
                "description": "`POST /api/v1/auth/register`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\AuthController@register`\n**Middleware:** `api, throttle:5,1`\n**Validation:** `App\\Http\\Requests\\Auth\\RegisterRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| email | required, string, email, max:255, unique:users |\n| password | required, string, min:6, confirmed, Password |\n| otp | required, string, exists:password_reset_tokens,token |\n| device_token | nullable, string |\n| device_type | nullable, string |"
              },
              "response": []
            },
            {
              "name": "Reset Password",
              "request": {
                "auth": {
                  "type": "noauth"
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"email\": \"{{company_email}}\", // required\n    \"code\": \"{{otp}}\", // required\n    \"password\": \"{{password}}\", // required\n    \"password_confirmation\": \"{{password}}\" // required (must match password)\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/auth/reset-password",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "reset-password"
                  ]
                },
                "description": "`POST /api/v1/auth/reset-password`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\AuthController@resetPassword`\n**Middleware:** `api, throttle:5,1`\n**Validation:** `App\\Http\\Requests\\Auth\\ResetPasswordRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| email | required, email |\n| code | required, numeric |\n| password | required, confirmed, min:4 |"
              },
              "response": []
            },
            {
              "name": "Update Password",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"current_password\": \"{{password}}\", // required\n    \"password\": \"{{password}}\", // required\n    \"password_confirmation\": \"{{password}}\", // required (must match password)\n    \"type\": \"company\" // required\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/auth/update-password",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "update-password"
                  ]
                },
                "description": "`POST /api/v1/auth/update-password`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\AuthController@updatePassword`\n**Middleware:** `api, jwt.verify, check.user.active.status`\n**Validation:** `App\\Http\\Requests\\Auth\\UpdatePasswordRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| current_password | required, current_password |\n| password | required, confirmed, min:6 |\n| type | required, in:driver,customer,company |"
              },
              "response": []
            },
            {
              "name": "Verify Otp",
              "request": {
                "auth": {
                  "type": "noauth"
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"email\": \"{{company_email}}\", // required\n    \"code\": \"{{otp}}\" // required\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/auth/verify-code",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "verify-code"
                  ]
                },
                "description": "`POST /api/v1/auth/verify-code`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\AuthController@verifyOtp`\n**Middleware:** `api, throttle:5,1`\n**Validation:** `App\\Http\\Requests\\Auth\\VerifyOtpRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| email | required, email, exists:users,email |\n| code | required, numeric |"
              },
              "response": []
            }
          ]
        }
      ]
    },
    {
      "name": "02 Shared",
      "item": [
        {
          "name": "Create Media",
          "request": {
            "auth": {
              "type": "noauth"
            },
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "media[]",
                  "description": "required unless remove_paths is sent; second file (duplicate row as needed).",
                  "type": "file",
                  "src": []
                },
                {
                  "key": "remove_paths[]",
                  "value": "media/example-path.jpg",
                  "description": "required unless media is sent; Existing media path to remove (must start with media/). Duplicate this key for more paths.",
                  "type": "text",
                  "disabled": true
                }
              ]
            },
            "url": {
              "raw": "{{base_url}}/api/v1/upload-media",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "upload-media"
              ]
            },
            "description": "`POST /api/v1/upload-media`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\MediaController@store`\n**Middleware:** `api`\n**Validation:** `App\\Http\\Requests\\Media\\StoreMediaRequest::rules()`\n\n**Body:** `multipart/form-data` (not JSON).\n\nProvide at least one `media[]` file **or** one `remove_paths[]` value.\n\n| Field | Type | Rules |\n|---|---|---|\n| media[] | file | nullable array of files; max 2MB each; mimes: jpg,jpeg,png,webp,gif,pdf,doc,docx,mp4,mov,avi |\n| remove_paths[] | text | nullable array of strings; max 1000; must start with `media/` |"
          },
          "response": []
        },
        {
          "name": "Chat",
          "item": [
            {
              "name": "Get Chats",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/chats?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "chats"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "type",
                      "value": "{{type}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "status",
                      "value": "{{status}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/chats`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\ChatController@getChats`\n**Middleware:** `api, jwt.verify`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| search | nullable, string |\n| type | nullable, string, in:company,driver |\n| status | nullable, string, in:active,inactive |\n| limit | nullable, string |\n| sort | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Update Message",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/chats/message/{{message_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "chats",
                    "message",
                    "{{message_id}}"
                  ]
                },
                "description": "`PUT /api/v1/chats/message/{message}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\ChatController@updateMessage`\n**Middleware:** `api, jwt.verify`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Delete Message",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/chats/message/{{message_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "chats",
                    "message",
                    "{{message_id}}"
                  ]
                },
                "description": "`DELETE /api/v1/chats/message/{message}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\ChatController@deleteMessage`\n**Middleware:** `api, jwt.verify`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Company",
          "item": [
            {
              "name": "List Company",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/company?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "company"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable|string|in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/company`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\CompanyController@index`\n**Middleware:** `api, jwt.verify`\n**Validation:** none detected â€” verify controller manually.\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Create Company",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"name\": \"Name\", // required\n    \"phone\": \"Phone\", // required\n    \"address\": { // required\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1200 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    },\n    \"logo\": null, // optional\n    \"description\": null, // optional\n    \"documents\": [ // optional\n        {\n            \"type\": \"business_license\", // required when documents.*.path is sent\n            \"path\": \"{{imagePath}}\" // required when documents.*.type is sent\n        },\n        {\n            \"type\": \"insurance_license\", // required when documents.*.path is sent\n            \"path\": \"{{imagePath}}\" // required when documents.*.type is sent\n        },\n        {\n            \"type\": \"waste_management_cert\", // required when documents.*.path is sent\n            \"path\": \"{{imagePath}}\" // required when documents.*.type is sent\n        }\n    ],\n    \"amount\": 1000 // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/company/create",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "company",
                    "create"
                  ]
                },
                "description": "`POST /api/v1/company/create`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\CompanyController@store`\n**Middleware:** `api, jwt.verify, throttle:5,1`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Company\\StoreCompanyRequest::rules()`\n\nStatus, Finix, and onboarding fields are **prohibited** (managed by platform / Finix flows only).\n\n| Field | Rules |\n|---|---|\n| name | required, string |\n| phone | required, string |\n| address | required, array, AddressPayload |\n| logo | nullable, string, max:1000, starts_with:media/, not_regex URL |\n| description | nullable, string |\n| documents | nullable, array |\n| amount | nullable, numeric, min:100, max:10000 |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Finix",
          "item": [
            {
              "name": "Get Paymwent Instrument Against Token",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"finix_token\": \"Finix Token\" // required\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/buyer/payment-instrument",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "buyer",
                    "payment-instrument"
                  ]
                },
                "description": "`POST /api/v1/finix/buyer/payment-instrument`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\FinixController@getPaymwentInstrumentAgainstToken`\n**Middleware:** `api, jwt.verify`\n**Validation:** inline Validator::make()/$request->validate() (no dedicated FormRequest â€” best-effort reflection).\n\n| Field | Rules |\n|---|---|\n| finix_token | required, string |"
              },
              "response": []
            },
            {
              "name": "Create Webhook",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/create/webhook",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "create",
                    "webhook"
                  ]
                },
                "description": "`POST /api/v1/finix/create/webhook`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\FinixController@createWebhook`\n**Middleware:** `api, jwt.verify`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Get Payment Instrument",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/user/payment-instrument?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "user",
                    "payment-instrument"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/finix/user/payment-instrument`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\FinixController@getPaymentInstrument`\n**Middleware:** `api, jwt.verify`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable, string |\n| sort | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Order",
          "item": [
            {
              "name": "Show Order Details",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/orders/{{order_id}}/details",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "orders",
                    "{{order_id}}",
                    "details"
                  ]
                },
                "description": "`GET /api/v1/orders/{order}/details`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\OrderController@showOrderDetails`\n**Middleware:** `api, jwt.verify`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Show Jobs",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/orders/{{order_id}}/jobs?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "orders",
                    "{{order_id}}",
                    "jobs"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable|string|in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/orders/{order}/jobs`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\OrderController@showJobs`\n**Middleware:** `api, jwt.verify`\n**Validation:** none detected â€” verify controller manually.\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Wallet",
          "item": [
            {
              "name": "Get Wallet",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/wallet",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "wallet"
                  ]
                },
                "description": "`GET /api/v1/wallet`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\WalletController@show`\n**Middleware:** `api, jwt.verify`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Get Wallet Transactions",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/wallet/transactions?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "wallet",
                    "transactions"
                  ],
                  "query": [
                    {
                      "key": "from_date",
                      "value": "{{from_date}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "to_date",
                      "value": "{{to_date}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "type",
                      "value": "{{type}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "direction",
                      "value": "{{direction}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "status",
                      "value": "{{status}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/wallet/transactions`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\WalletController@getWalletTransactions`\n**Middleware:** `api, jwt.verify`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| from_date | nullable, string |\n| to_date | nullable, string |\n| search | nullable, string |\n| type | nullable, string |\n| direction | nullable, string |\n| status | nullable, string |\n| limit | nullable, string |\n| sort | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Wallet Transaction Details",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/wallet/transactions/{{transaction_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "wallet",
                    "transactions",
                    "{{transaction_id}}"
                  ]
                },
                "description": "`GET /api/v1/wallet/transactions/{transactionId}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\WalletController@walletTransactionDetails`\n**Middleware:** `api, jwt.verify`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Qr Code",
          "item": [
            {
              "name": "Verify Qr Code",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"uuid\": \"{{qr_uuid}}\", // required; asset, driver, or truck uuid (generated QR uuid / payload URL also accepted)\n    \"model\": \"asset\", // required; asset | driver | truck\n    \"order_id\": null, // optional; integer; must belong to the caller's company and to this record\n    \"job_id\": null // optional; integer; must belong to the caller's company and to this record (`jobs` is an alias)\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/qr-codes/verify",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "qr-codes",
                    "verify"
                  ]
                },
                "description": "`POST /api/v1/qr-codes/verify`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\QrCodeController@verify`\n**Middleware:** `api, jwt.verify` only (open to company, driver, and customer JWTs). Swap `{{company_token}}` for `{{driver_token}}` or `{{customer_token}}`. Company is resolved from the authenticated user type. Not gated by `checkType:company`.\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\QrCode\\VerifyQrCodeRequest::rules()`\n\nVerification only. Confirms the scanned asset, driver, or truck belongs to the caller's company. `order_id` and `job_id` are optional extra checks. Does **not** return a resource â€” `data` is always `null`.\n\n| Field | Rules |\n|---|---|\n| uuid | required, uuid (or send `payload` as the QR URL / uuid) |\n| model | required, in:asset,assets,driver,drivers,truck,trucks |\n| order_id | nullable, integer, min:1 |\n| job_id | nullable, integer, min:1 (`jobs` accepted as an alias) |"
              },
              "response": []
            }
          ],
          "description": "JWT routes shared by company, driver, and customer. Generate/show QR images stay under 03 Company."
        },
        {
          "name": "Create Contact Us",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{token}}",
                  "type": "string"
                }
              ]
            },
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"subject\": \"Subject\", // required\n    \"message\": \"Message\", // required\n    \"category\": null, // optional\n    \"phone\": null, // optional\n    \"order_reference\": null, // optional\n    \"related_to\": null // optional\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{base_url}}/api/v1/contact-us",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "contact-us"
              ]
            },
            "description": "`POST /api/v1/contact-us`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\ContactUsController@store`\n**Middleware:** `api, jwt.verify`\n**Validation:** inline Validator::make()/$request->validate() (no dedicated FormRequest â€” best-effort reflection).\n\n| Field | Rules |\n|---|---|\n| subject | required, string, max:255 |\n| message | required, string, max:5000 |\n| category | nullable, string, max:100 |\n| phone | nullable, string, max:20 |\n| order_reference | nullable, string, max:100 |\n| related_to | nullable, string, in:delivery,pickup,billing,other |"
          },
          "response": []
        }
      ]
    },
    {
      "name": "03 Company",
      "item": [
        {
          "name": "Company",
          "item": [
            {
              "name": "Update Company",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"name\": \"Name\", // required\n    \"phone\": \"Phone\", // required\n    \"slug\": \"company\", // optional\n    \"address\": { // optional\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1200 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    },\n    \"logo\": null, // optional\n    \"description\": null, // optional\n    \"customer_panel_url\": null, // optional\n    \"documents\": [ // optional\n        {\n            \"type\": \"business_license\", // required when documents.*.path is sent\n            \"path\": \"{{imagePath}}\" // required when documents.*.type is sent\n        },\n        {\n            \"type\": \"insurance_license\", // required when documents.*.path is sent\n            \"path\": \"{{imagePath}}\" // required when documents.*.type is sent\n        },\n        {\n            \"type\": \"waste_management_cert\", // required when documents.*.path is sent\n            \"path\": \"{{imagePath}}\" // required when documents.*.type is sent\n        }\n    ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/company/update",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "company",
                    "update"
                  ]
                },
                "description": "`POST /api/v1/company/update`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\CompanyController@update`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Company\\UpdateCompanyRequest::rules()`\n\nAllowed fields only. Status, Finix, and onboarding fields are **prohibited** and stripped in `CompanyService` (cannot be updated by company users).\n\n| Field | Rules |\n|---|---|\n| name | required, string |\n| phone | required, string, max:50 |\n| slug | sometimes, string, unique:companies,slug |\n| address | nullable, array, AddressPayload |\n| logo | nullable, string, max:1000, starts_with:media/, not_regex URL |\n| description | nullable, string |\n| customer_panel_url | sometimes, nullable, string, max:255 |\n| documents | nullable, array |"
              },
              "response": []
            },
            {
              "name": "Update Company User",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"name\": \"Name\", // required\n    \"image\": \"{{imagePath}}\", // optional\n    \"phone\": \"+1398745621\" // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/company/user/update",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "company",
                    "user",
                    "update"
                  ]
                },
                "description": "`POST /api/v1/company/user/update`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\CompanyController@updateCompanyUser`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Company\\UpdateCompanyUserRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| name | required, string |\n| email | nullable, email, unique:users,email, |\n| image | nullable, string, max:1000, starts_with:media/, not_regex:/^https?:\\/\\//i |\n| phone | sometimes, nullable, string, max:50 |"
              },
              "response": []
            },
            {
              "name": "Dashboard",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/company/dashboard",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "company",
                    "dashboard"
                  ]
                },
                "description": "`GET /api/v1/company/dashboard`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\CompanyController@dashboard`\n**Service:** `CompanyDashboardService::getCompanyDashboardData`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n\nReturns order/customer/ops counts plus nested `fleet` counts: asset_categories, asset_styles, asset_specifications, assets, pricing_profiles, payment_terms, waste_types, trucks, truck_types, stations, lots.\n\nOrder count keys: pending_orders, swapped_orders, awaiting_payment_orders, confirmed_orders, dispatched_orders, completed_orders, on_going_orders.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Document",
          "item": [
            {
              "name": "List Document",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/company/documents?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "company",
                    "documents"
                  ],
                  "query": [
                    {
                      "key": "type",
                      "value": "{{type}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/company/documents`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\DocumentController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| type | nullable, string |\n| limit | nullable, string |\n| sort | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Sync Documents",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"documents\": [ // required\n        {\n            \"type\": \"business_license\", // required\n            \"path\": \"{{imagePath}}\" // required\n        },\n        {\n            \"type\": \"insurance_license\", // required\n            \"path\": \"{{imagePath}}\" // required\n        },\n        {\n            \"type\": \"waste_management_cert\", // required\n            \"path\": \"{{imagePath}}\" // required\n        }\n    ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/company/documents",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "company",
                    "documents"
                  ]
                },
                "description": "`POST /api/v1/company/documents`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\DocumentController@syncDocuments`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Company\\DocumentUpdateRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| documents | required, array |"
              },
              "response": []
            },
            {
              "name": "Delete Document",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/company/documents/{{document_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "company",
                    "documents",
                    "{{document_id}}"
                  ]
                },
                "description": "`DELETE /api/v1/company/documents/{document}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\DocumentController@destroy`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Setting",
          "item": [
            {
              "name": "List Setting",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/company/settings?sort={{sort}}&limit={{limit}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "company",
                    "settings"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/company/settings`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\SettingController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\nKnown company setting keys (from `config/settings.php`):\n- `orders.auto_rejection_time_limit` â€” hours after approval before an unpaid `awaiting_payment` order is auto-rejected by `app:auto-reject-orders`\n- `customers.delinquent_threshold` â€” days before a customer is marked delinquent\n- `drivers.grace_minutes` â€” driver attendance grace minutes\n\n| Query Param | Rules |\n|---|---|\n| search | nullable, string |\n| sort | nullable, string |\n| limit | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Update Setting",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"key\": \"{{setting_key}}\", // optional\n    \"value\": {{setting_value}} // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/company/settings",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "company",
                    "settings"
                  ]
                },
                "description": "`POST /api/v1/company/settings`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\SettingController@update`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Company\\UpdateSettingsRequest::rules()`\n\nSingle update shape: `{ \"key\", \"value\" }` or bulk: `{ \"settings\": [{ \"key\", \"value\" }, ...] }`.\n\nExample key: `orders.auto_rejection_time_limit` (integer hours, min 1) â€” replaces the former `orders.cancelation_time_limit`. Used by artisan `app:auto-reject-orders` to set unpaid `awaiting_payment` orders to `rejected`.\n\n| Field | Rules |\n|---|---|\n| key | required_without:settings, string, in allowed config keys |\n| value | required_without:settings |\n| settings | sometimes, array, min:1 |\n| settings.*.key | required, string, distinct, in allowed keys |\n| settings.*.value | required |"
              },
              "response": []
            },
            {
              "name": "Reset",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/company/settings/reset",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "company",
                    "settings",
                    "reset"
                  ]
                },
                "description": "`POST /api/v1/company/settings/reset`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\SettingController@reset`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Company\\ResetSettingsRequest::rules()`\n\nRestores all company settings to config defaults (including `orders.auto_rejection_time_limit` = 24).\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Station",
          "item": [
            {
              "name": "Holidays",
              "item": [
                {
                  "name": "Get Station Holidays",
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{company_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{base_url}}/api/v1/station/{{station_id}}/holidays?limit={{limit}}&sort={{sort}}&page=1",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "station",
                        "{{station_id}}",
                        "holidays"
                      ],
                      "query": [
                        {
                          "key": "limit",
                          "value": "{{limit}}",
                          "description": "nullable|integer|min:1|max:100"
                        },
                        {
                          "key": "sort",
                          "value": "{{sort}}",
                          "description": "nullable|string|in:asc,desc"
                        },
                        {
                          "key": "page",
                          "value": "1",
                          "description": "Page number for paginated results"
                        }
                      ]
                    },
                    "description": "`GET /api/v1/station/{station}/holidays`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\StationController@getStationHolidays`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
                  },
                  "response": []
                },
                {
                  "name": "Store Station Holiday",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "const response = pm.response.json();",
                          "",
                          "// Check the response status code",
                          "pm.test(\"Status code is 201\", function () {",
                          "    pm.expect(pm.response.code).to.equal(201);",
                          "});",
                          "",
                          "// Save the ID to an environment variable",
                          "pm.environment.set(\"holiday_id\", response.data.id);"
                        ],
                        "type": "text/javascript",
                        "packages": {},
                        "requests": {}
                      }
                    }
                  ],
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{company_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "POST",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      },
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "raw": "{\n    \"date\": \"2026-08-14\", // required\n    \"description\": \"14 august public holiday\" // optional\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    },
                    "url": {
                      "raw": "{{base_url}}/api/v1/station/{{station_id}}/holidays",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "station",
                        "{{station_id}}",
                        "holidays"
                      ]
                    },
                    "description": "`POST /api/v1/station/{station}/holidays`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\StationController@storeStationHoliday`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Holiday\\StoreHolidayRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| date | required, date |\n| description | nullable, string, max:5000 |"
                  },
                  "response": []
                },
                {
                  "name": "Sync Station Holidays",
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{company_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "PUT",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      },
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "raw": "{\n    \"holidays\": [ // required\n        {\n            \"date\": \"2026-07-21\", // required\n            \"description\": null // optional\n        },\n        {\n            \"date\": \"2026-08-14\", // required\n            \"description\": \"14 august public holiday\" // optional\n        }\n    ]\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    },
                    "url": {
                      "raw": "{{base_url}}/api/v1/station/{{station_id}}/holidays",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "station",
                        "{{station_id}}",
                        "holidays"
                      ]
                    },
                    "description": "`PUT /api/v1/station/{station}/holidays`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\StationController@syncStationHolidays`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Holiday\\HolidaySyncRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| holidays | required, array |"
                  },
                  "response": []
                },
                {
                  "name": "Update Station Holiday",
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{company_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "PUT",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      },
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "raw": "{\n    \"date\": null, // optional\n    \"description\": null // optional\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    },
                    "url": {
                      "raw": "{{base_url}}/api/v1/station/{{station_id}}/holidays/{{holiday_id}}",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "station",
                        "{{station_id}}",
                        "holidays",
                        "{{holiday_id}}"
                      ]
                    },
                    "description": "`PUT /api/v1/station/{station}/holidays/{holiday}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\StationController@updateStationHoliday`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Holiday\\UpdateHolidayRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| date | sometimes, date |\n| description | sometimes, nullable, string, max:5000 |"
                  },
                  "response": []
                },
                {
                  "name": "Destroy Station Holiday",
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{company_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "DELETE",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{base_url}}/api/v1/station/{{station_id}}/holidays/{{holiday_id}}",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "station",
                        "{{station_id}}",
                        "holidays",
                        "{{holiday_id}}"
                      ]
                    },
                    "description": "`DELETE /api/v1/station/{station}/holidays/{holiday}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\StationController@destroyStationHoliday`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
                  },
                  "response": []
                }
              ]
            },
            {
              "name": "List Station",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/stations?sort={{sort}}&limit={{limit}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "stations"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/stations`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\StationController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| search | nullable, string |\n| sort | nullable, string |\n| limit | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Create Station",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "const response = pm.response.json();",
                      "",
                      "// Check the response status code",
                      "pm.test(\"Status code is 201\", function () {",
                      "    pm.expect(pm.response.code).to.equal(201);",
                      "});",
                      "",
                      "// Save the ID to an environment variable",
                      "pm.environment.set(\"station_id\", response.data.id);"
                    ],
                    "type": "text/javascript",
                    "packages": {},
                    "requests": {}
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"status\": \"open\", // required\n    \"is_active\": true, // optional\n    \"icon\": \"landfill\", // optional\n    \"name\": \"Regional Landfill\", // required\n    \"nickname\": \"LF-01\", // optional\n    \"type\": \"landfill\", // required\n    \"hours_of_operation\": \"Mon-Sat 7am-5pm\", // optional\n    \"default_surcharge_amount\": null, // optional\n    \"additional_duration_minutes\": null, // optional\n    \"address\": { // optional\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1200 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/station/create",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "station",
                    "create"
                  ]
                },
                "description": "`POST /api/v1/station/create`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\StationController@store`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Station\\StoreStationRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| status | required, Enum (open\\|closed) |\n| is_active | sometimes, boolean |\n| icon | nullable, string, max:255 |\n| name | required, string, max:255 |\n| nickname | nullable, string, max:255 |\n| type | required, Enum (landfill\\|transfer\\|recycle) |\n| hours_of_operation | nullable, string |\n| default_surcharge_amount | nullable, numeric, min:0 |\n| additional_duration_minutes | nullable, numeric, min:0 |\n| address | AddressPayload (required) |"
              },
              "response": []
            },
            {
              "name": "Get Station",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/station/{{station_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "station",
                    "{{station_id}}"
                  ]
                },
                "description": "`GET /api/v1/station/{station}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\StationController@show`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Update Station",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"status\": \"open\", // optional\n    \"is_active\": true, // optional\n    \"icon\": \"landfill\", // optional\n    \"name\": \"Regional Landfill\", // optional\n    \"nickname\": \"LF-01\", // optional\n    \"type\": \"landfill\", // optional\n    \"hours_of_operation\": \"Mon-Sat 7am-5pm\", // optional\n    \"default_surcharge_amount\": null, // optional\n    \"additional_duration_minutes\": null, // optional\n    \"address\": { // optional\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1200 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/station/{{station_id}}/update",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "station",
                    "{{station_id}}",
                    "update"
                  ]
                },
                "description": "`PUT /api/v1/station/{station}/update`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\StationController@update`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Station\\UpdateStationRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| status | sometimes, Enum (open\\|closed) |\n| is_active | sometimes, boolean |\n| icon | sometimes, string, max:255 |\n| name | sometimes, string, max:255 |\n| nickname | nullable, string, max:255 |\n| type | sometimes, Enum (landfill\\|transfer\\|recycle) |\n| hours_of_operation | nullable, string |\n| default_surcharge_amount | nullable, numeric, min:0 |\n| additional_duration_minutes | nullable, numeric, min:0 |\n| address | sometimes, nullable, AddressPayload |"
              },
              "response": []
            },
            {
              "name": "Delete Station",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/station/{{station_id}}/delete",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "station",
                    "{{station_id}}",
                    "delete"
                  ]
                },
                "description": "`DELETE /api/v1/station/{station}/delete`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\StationController@destroy`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Lot",
          "item": [
            {
              "name": "Holidays",
              "item": [
                {
                  "name": "Get Lot Holidays",
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{company_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{base_url}}/api/v1/lot/{{lot_id}}/holidays?limit={{limit}}&sort={{sort}}&page=1",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "lot",
                        "{{lot_id}}",
                        "holidays"
                      ],
                      "query": [
                        {
                          "key": "limit",
                          "value": "{{limit}}",
                          "description": "nullable|integer|min:1|max:100"
                        },
                        {
                          "key": "sort",
                          "value": "{{sort}}",
                          "description": "nullable|string|in:asc,desc"
                        },
                        {
                          "key": "page",
                          "value": "1",
                          "description": "Page number for paginated results"
                        }
                      ]
                    },
                    "description": "`GET /api/v1/lot/{lot}/holidays`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\LotController@getLotHolidays`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
                  },
                  "response": []
                },
                {
                  "name": "Store Lot Holiday",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "const response = pm.response.json();",
                          "",
                          "// Check the response status code",
                          "pm.test(\"Status code is 201\", function () {",
                          "    pm.expect(pm.response.code).to.equal(201);",
                          "});",
                          "",
                          "// Save the ID to an environment variable",
                          "pm.environment.set(\"holiday_id\", response.data.id);"
                        ],
                        "type": "text/javascript",
                        "packages": {},
                        "requests": {}
                      }
                    }
                  ],
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{company_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "POST",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      },
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "raw": "{\n    \"date\": \"2026-08-14\", // required\n    \"description\": \"14 august holiday\" // optional\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    },
                    "url": {
                      "raw": "{{base_url}}/api/v1/lot/{{lot_id}}/holidays",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "lot",
                        "{{lot_id}}",
                        "holidays"
                      ]
                    },
                    "description": "`POST /api/v1/lot/{lot}/holidays`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\LotController@storeLotHoliday`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Holiday\\StoreHolidayRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| date | required, date |\n| description | nullable, string, max:5000 |"
                  },
                  "response": []
                },
                {
                  "name": "Sync Lot Holidays",
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{company_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "PUT",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      },
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "raw": "{\n    \"holidays\": [ // required\n        {\n            \"date\": \"2026-07-21\", // required\n            \"description\": null // optional\n        },\n        {\n            \"date\": \"2026-08-14\", // required\n            \"description\": \"14 august holiday\" // optional\n        }\n    ]\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    },
                    "url": {
                      "raw": "{{base_url}}/api/v1/lot/{{lot_id}}/holidays",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "lot",
                        "{{lot_id}}",
                        "holidays"
                      ]
                    },
                    "description": "`PUT /api/v1/lot/{lot}/holidays`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\LotController@syncLotHolidays`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Holiday\\HolidaySyncRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| holidays | required, array |"
                  },
                  "response": []
                },
                {
                  "name": "Update Lot Holiday",
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{company_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "PUT",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      },
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "raw": "{\n    \"date\": null, // optional\n    \"description\": null // optional\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    },
                    "url": {
                      "raw": "{{base_url}}/api/v1/lot/{{lot_id}}/holidays/{{holiday_id}}",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "lot",
                        "{{lot_id}}",
                        "holidays",
                        "{{holiday_id}}"
                      ]
                    },
                    "description": "`PUT /api/v1/lot/{lot}/holidays/{holiday}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\LotController@updateLotHoliday`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Holiday\\UpdateHolidayRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| date | sometimes, date |\n| description | sometimes, nullable, string, max:5000 |"
                  },
                  "response": []
                },
                {
                  "name": "Destroy Lot Holiday",
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{company_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "DELETE",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{base_url}}/api/v1/lot/{{lot_id}}/holidays/{{holiday_id}}",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "lot",
                        "{{lot_id}}",
                        "holidays",
                        "{{holiday_id}}"
                      ]
                    },
                    "description": "`DELETE /api/v1/lot/{lot}/holidays/{holiday}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\LotController@destroyLotHoliday`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
                  },
                  "response": []
                }
              ]
            },
            {
              "name": "List Lot",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/lots?sort={{sort}}&limit={{limit}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "lots"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/lots`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\LotController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| search | nullable, string |\n| sort | nullable, string |\n| limit | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Create Lot",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "const response = pm.response.json();",
                      "",
                      "// Check the response status code",
                      "pm.test(\"Status code is 201\", function () {",
                      "    pm.expect(pm.response.code).to.equal(201);",
                      "});",
                      "",
                      "// Save the ID to an environment variable",
                      "pm.environment.set(\"lot_id\", response.data.id);"
                    ],
                    "type": "text/javascript",
                    "packages": {},
                    "requests": {}
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"status\": \"open\", // required\n    \"is_active\": true, // optional\n    \"icon\": \"open_lot\", // optional\n    \"name\": \"Main Yard\", // required\n    \"nickname\": \"YARD-01\", // optional\n    \"type\": \"Storage Yard\", // required\n    \"hours_of_operation\": \"Mon-Fri 6am-6pm\", // optional\n    \"default_surcharge_amount\": null, // optional\n    \"additional_duration_minutes\": null, // optional\n    \"address\": { // optional\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1200 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/lot/create",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "lot",
                    "create"
                  ]
                },
                "description": "`POST /api/v1/lot/create`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\LotController@store`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Lot\\StoreLotRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| status | required, Enum (open\\|closed) |\n| is_active | sometimes, boolean |\n| icon | nullable, string, max:255 |\n| name | required, string, max:255 |\n| nickname | nullable, string, max:255 |\n| type | required, string, max:255 |\n| hours_of_operation | nullable, string |\n| default_surcharge_amount | nullable, numeric, min:0 |\n| additional_duration_minutes | nullable, numeric, min:0 |\n| address | AddressPayload (required) |"
              },
              "response": []
            },
            {
              "name": "Get Lot",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/lot/{{lot_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "lot",
                    "{{lot_id}}"
                  ]
                },
                "description": "`GET /api/v1/lot/{lot}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\LotController@show`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Update Lot",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"status\": \"closed\", // optional; open, closed\n    \"is_active\": false, // optional\n    \"icon\": \"open_lot\", // optional\n    \"name\": \"Main Yard\", // optional\n    \"nickname\": \"YARD-01\", // optional\n    \"type\": \"Storage Yard\", // optional\n    \"hours_of_operation\": \"Mon-Fri 6am-6pm\", // optional\n    \"default_surcharge_amount\": null, // optional\n    \"additional_duration_minutes\": null, // optional\n    \"address\": { // optional\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1200 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/lot/{{lot_id}}/update",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "lot",
                    "{{lot_id}}",
                    "update"
                  ]
                },
                "description": "`PUT /api/v1/lot/{lot}/update`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\LotController@update`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Lot\\UpdateLotRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| status | sometimes, Enum (open\\|closed) |\n| is_active | sometimes, boolean |\n| icon | sometimes, nullable, string, max:255 |\n| name | sometimes, string, max:255 |\n| nickname | nullable, string, max:255 |\n| type | sometimes, string, max:255 |\n| hours_of_operation | nullable, string |\n| default_surcharge_amount | nullable, numeric, min:0 |\n| additional_duration_minutes | nullable, numeric, min:0 |\n| address | sometimes, nullable, AddressPayload |"
              },
              "response": []
            },
            {
              "name": "Delete Lot",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/lot/{{lot_id}}/delete",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "lot",
                    "{{lot_id}}",
                    "delete"
                  ]
                },
                "description": "`DELETE /api/v1/lot/{lot}/delete`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\LotController@destroy`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Waste Type",
          "item": [
            {
              "name": "List Waste Type",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/waste-types?sort={{sort}}&limit={{limit}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "waste-types"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/waste-types`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\WasteTypeController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| search | nullable, string |\n| sort | nullable, string |\n| limit | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Create Waste Type",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "const response = pm.response.json();",
                      "",
                      "// Check the response status code",
                      "pm.test(\"Status code is 201\", function () {",
                      "    pm.expect(pm.response.code).to.equal(201);",
                      "});",
                      "",
                      "// Save the ID to an environment variable",
                      "pm.environment.set(\"waste_type_id\", response.data.id);"
                    ],
                    "type": "text/javascript",
                    "packages": {},
                    "requests": {}
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"name\":\"plastic debris\", // required\n    \"description\": \"test description\" // required\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/waste-types",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "waste-types"
                  ]
                },
                "description": "`POST /api/v1/waste-types`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\WasteTypeController@store`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\WasteType\\StoreWasteTypeRequest::rules()`\n"
              },
              "response": []
            },
            {
              "name": "Get Waste Type",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/waste-types/{{waste_type_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "waste-types",
                    "{{waste_type_id}}"
                  ]
                },
                "description": "`GET /api/v1/waste-types/{wasteType}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\WasteTypeController@show`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Update Waste Type",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"name\":\"plastic debris updated\", // required\n    \"description\": \"test description\" // required\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/waste-types/{{waste_type_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "waste-types",
                    "{{waste_type_id}}"
                  ]
                },
                "description": "`PUT /api/v1/waste-types/{wasteType}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\WasteTypeController@update`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\WasteType\\UpdateWasteTypeRequest::rules()`\n"
              },
              "response": []
            },
            {
              "name": "Delete Waste Type",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/waste-types/{{waste_type_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "waste-types",
                    "{{waste_type_id}}"
                  ]
                },
                "description": "`DELETE /api/v1/waste-types/{wasteType}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\WasteTypeController@destroy`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Asset Category",
          "item": [
            {
              "name": "List Asset Category",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/asset-categories?sort={{sort}}&limit={{limit}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "asset-categories"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "is_active",
                      "value": "{{is_active}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/asset-categories`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AssetCategoryController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| search | nullable, string |\n| is_active | nullable, string |\n| sort | nullable, string |\n| limit | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Create Asset Category",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "const response = pm.response.json();",
                      "",
                      "// Check the response status code",
                      "pm.test(\"Status code is 201\", function () {",
                      "    pm.expect(pm.response.code).to.equal(201);",
                      "});",
                      "",
                      "// Save the ID to an environment variable",
                      "pm.environment.set(\"asset_category_id\", response.data.id);"
                    ],
                    "type": "text/javascript",
                    "packages": {},
                    "requests": {}
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"name\": \"Dumpster\", // required\n    \"is_active\": true // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/asset-categories",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "asset-categories"
                  ]
                },
                "description": "`POST /api/v1/asset-categories`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AssetCategoryController@store`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\AssetCategory\\StoreAssetCategoryRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| name | required, string, max:255, unique:asset_categories,name,NULL,id,company_id,\"NULL\" |\n| is_active | sometimes, boolean |"
              },
              "response": []
            },
            {
              "name": "Get Asset Category",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/asset-categories/{{asset_category_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "asset-categories",
                    "{{asset_category_id}}"
                  ]
                },
                "description": "`GET /api/v1/asset-categories/{assetCategory}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AssetCategoryController@show`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Update Asset Category",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"name\": \"Dumpster\", // required\n    \"is_active\": true // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/asset-categories/{{asset_category_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "asset-categories",
                    "{{asset_category_id}}"
                  ]
                },
                "description": "`PUT /api/v1/asset-categories/{assetCategory}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AssetCategoryController@update`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\AssetCategory\\UpdateAssetCategoryRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| name | required, string, max:255, unique:asset_categories,name,NULL,id,company_id,\"NULL\" |\n| is_active | sometimes, boolean |"
              },
              "response": []
            },
            {
              "name": "Delete Asset Category",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/asset-categories/{{asset_category_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "asset-categories",
                    "{{asset_category_id}}"
                  ]
                },
                "description": "`DELETE /api/v1/asset-categories/{assetCategory}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AssetCategoryController@destroy`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Asset Style",
          "item": [
            {
              "name": "List Asset Style",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/asset-styles?sort={{sort}}&limit={{limit}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "asset-styles"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "is_active",
                      "value": "{{is_active}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "asset_category_id",
                      "value": "{{asset_category_id}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/asset-styles`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AssetStyleController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| search | nullable, string |\n| is_active | nullable, string |\n| asset_category_id | nullable, string |\n| sort | nullable, string |\n| limit | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Create Asset Style",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "const response = pm.response.json();",
                      "",
                      "// Check the response status code",
                      "pm.test(\"Status code is 201\", function () {",
                      "    pm.expect(pm.response.code).to.equal(201);",
                      "});",
                      "",
                      "// Save the ID to an environment variable",
                      "pm.environment.set(\"asset_style_id\", response.data.id);"
                    ],
                    "type": "text/javascript",
                    "packages": {},
                    "requests": {}
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"asset_category_id\": {{asset_category_id}}, // required\n    \"name\": \"Roll Off\", // required\n    \"icon\": null, // optional\n    \"description\": null, // optional\n    \"is_active\": true // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/asset-styles",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "asset-styles"
                  ]
                },
                "description": "`POST /api/v1/asset-styles`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AssetStyleController@store`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\AssetStyle\\StoreAssetStyleRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| asset_category_id | required, integer, exists:asset_categories,id,company_id,\"NULL\" |\n| name | required, string, max:255, unique:asset_styles,name,NULL,id,company_id,\"NULL\",asset_category_id,\"NULL\" |\n| icon | nullable, string, max:255 |\n| description | nullable, string |\n| is_active | sometimes, boolean |"
              },
              "response": []
            },
            {
              "name": "Get Asset Style",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/asset-styles/{{asset_style_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "asset-styles",
                    "{{asset_style_id}}"
                  ]
                },
                "description": "`GET /api/v1/asset-styles/{assetStyle}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AssetStyleController@show`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Update Asset Style",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"asset_category_id\": {{asset_category_id}}, // optional\n    \"name\": \"Roll off\", // required\n    \"icon\": null, // optional\n    \"description\": null, // optional\n    \"is_active\": true // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/asset-styles/{{asset_style_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "asset-styles",
                    "{{asset_style_id}}"
                  ]
                },
                "description": "`PUT /api/v1/asset-styles/{assetStyle}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AssetStyleController@update`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\AssetStyle\\UpdateAssetStyleRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| asset_category_id | sometimes, integer, exists:asset_categories,id,company_id,\"NULL\" |\n| name | required, string, max:255, unique:asset_styles,name,NULL,id,company_id,\"NULL\",asset_category_id,\"NULL\" |\n| icon | nullable, string, max:255 |\n| description | nullable, string |\n| is_active | sometimes, boolean |"
              },
              "response": []
            },
            {
              "name": "Delete Asset Style",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/asset-styles/{{asset_style_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "asset-styles",
                    "{{asset_style_id}}"
                  ]
                },
                "description": "`DELETE /api/v1/asset-styles/{assetStyle}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AssetStyleController@destroy`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Tax",
          "item": [
            {
              "name": "List Tax",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/taxes?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "taxes"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "is_active",
                      "value": "{{is_active}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "is_default",
                      "value": "{{is_default}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "type",
                      "value": "{{type}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "paginate",
                      "value": "{{paginate}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/taxes`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\TaxController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| search | nullable, string |\n| is_active | nullable, string |\n| is_default | nullable, string |\n| type | nullable, string |\n| limit | nullable, string |\n| sort | nullable, string |\n| paginate | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Create Tax",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "const response = pm.response.json();",
                      "",
                      "// Check the response status code",
                      "pm.test(\"Status code is 201\", function () {",
                      "    pm.expect(pm.response.code).to.equal(201);",
                      "});",
                      "",
                      "// Save the ID to an environment variable",
                      "pm.environment.set(\"tax_id\", response.data.id);"
                    ],
                    "type": "text/javascript",
                    "packages": {},
                    "requests": {}
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"label\": \"GST\", // required\n    \"type\": \"percentage\", // required; percentage, fixed\n    \"value\": 15, // required\n    \"is_active\": true, // optional\n    \"description\": \"Default sales tax rate.\" // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/taxes",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "taxes"
                  ]
                },
                "description": "`POST /api/v1/taxes`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\TaxController@store`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Tax\\StoreTaxRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| label | required, string, max:255, unique per company |\n| type | required, string, Enum (percentage\\|fixed) |\n| value | required, numeric, min:0 (max:100 when percentage) |\n| is_default | sometimes, boolean |\n| is_active | sometimes, boolean |\n| description | nullable, string |"
              },
              "response": []
            },
            {
              "name": "Get Tax",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/taxes/{{tax_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "taxes",
                    "{{tax_id}}"
                  ]
                },
                "description": "`GET /api/v1/taxes/{tax}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\TaxController@show`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Update Tax",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"label\": \"Sales Tax\", // optional\n    \"type\": \"percentage\", // optional\n    \"value\": 10, // optional\n    \"is_active\": true, // optional\n    \"description\": null // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/taxes/{{tax_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "taxes",
                    "{{tax_id}}"
                  ]
                },
                "description": "`PUT /api/v1/taxes/{tax}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\TaxController@update`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Tax\\UpdateTaxRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| label | sometimes, string, max:255, unique per company |\n| type | sometimes, string, Enum (percentage\\|fixed) |\n| value | sometimes, numeric, min:0 (max:100 when percentage) |\n| is_default | sometimes, boolean |\n| is_active | sometimes, boolean |\n| description | nullable, string |"
              },
              "response": []
            },
            {
              "name": "Delete Tax",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/taxes/{{tax_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "taxes",
                    "{{tax_id}}"
                  ]
                },
                "description": "`DELETE /api/v1/taxes/{tax}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\TaxController@destroy`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Pricing Profile",
          "item": [
            {
              "name": "List Pricing Profile",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/pricing-profiles?sort={{sort}}&limit={{limit}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "pricing-profiles"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "is_active",
                      "value": "{{is_active}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/pricing-profiles`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\PricingProfileController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| search | nullable, string |\n| is_active | nullable, string |\n| sort | nullable, string |\n| limit | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Create Pricing Profile",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "const response = pm.response.json();",
                      "",
                      "// Check the response status code",
                      "pm.test(\"Status code is 201\", function () {",
                      "    pm.expect(pm.response.code).to.equal(201);",
                      "});",
                      "",
                      "// Save the ID to an environment variable",
                      "pm.environment.set(\"pricing_profile_id\", response.data.id);"
                    ],
                    "type": "text/javascript",
                    "packages": {},
                    "requests": {}
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"name\": \"10 Yard dumpster specs\", // required\n    \"minimum_days\": 7, // required\n    \"base_rent\": 500, // required\n    \"extra_day_charge\": 75, // required\n    \"overweight_charge_type\": \"flat\", // required\n    \"overweight_charge\": 65, // required\n    \"overweight_unit\": \"ton\", // required\n    \"is_active\": true, // optional\n    \"taxes\": [ // optional\n        {\n            \"tax_id\": {{tax_id}}, // required\n            \"sort_order\": 0 // optional\n        }\n    ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/pricing-profiles",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "pricing-profiles"
                  ]
                },
                "description": "`POST /api/v1/pricing-profiles`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\PricingProfileController@store`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\PricingProfile\\StorePricingProfileRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| name | required, string, max:255, unique per company |\n| minimum_days | required, integer, min:0 |\n| base_rent | required, numeric, min:0 |\n| extra_day_charge | required, numeric, min:0 |\n| overweight_charge_type | required, string, Enum (flat\\|percentage) |\n| overweight_charge | required, numeric, min:0 |\n| overweight_unit | required, string, Enum (ton\\|pound) |\n| is_active | sometimes, boolean |\n| taxes | sometimes, array |"
              },
              "response": []
            },
            {
              "name": "Get Pricing Profile",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/pricing-profiles/{{pricing_profile_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "pricing-profiles",
                    "{{pricing_profile_id}}"
                  ]
                },
                "description": "`GET /api/v1/pricing-profiles/{pricingProfile}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\PricingProfileController@show`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Update Pricing Profile",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"name\": \"10 Yard Weekly\", // required\n    \"minimum_days\": 7, // optional\n    \"base_rent\": 375, // optional\n    \"extra_day_charge\": 40, // optional\n    \"overweight_charge_type\": \"flat\", // optional\n    \"overweight_charge\": 65, // optional\n    \"overweight_unit\": \"ton\", // optional\n    \"is_active\": true, // optional\n    \"taxes\": [ // optional\n        {\n            \"tax_id\": {{tax_id}}, // required\n            \"sort_order\": 1 // optional\n        },\n         {\n            \"tax_id\": 1, // required\n            \"sort_order\": 0 // optional\n        }\n    ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/pricing-profiles/{{pricing_profile_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "pricing-profiles",
                    "{{pricing_profile_id}}"
                  ]
                },
                "description": "`PUT /api/v1/pricing-profiles/{pricingProfile}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\PricingProfileController@update`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\PricingProfile\\UpdatePricingProfileRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| name | required, string, max:255, unique per company |\n| minimum_days | sometimes, integer, min:0 |\n| base_rent | sometimes, numeric, min:0 |\n| extra_day_charge | sometimes, numeric, min:0 |\n| overweight_charge_type | sometimes, string, Enum (flat\\|percentage) |\n| overweight_charge | sometimes, numeric, min:0 |\n| overweight_unit | sometimes, string, Enum (ton\\|pound) |\n| is_active | sometimes, boolean |\n| taxes | sometimes, array |"
              },
              "response": []
            },
            {
              "name": "Delete Pricing Profile",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/pricing-profiles/{{pricing_profile_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "pricing-profiles",
                    "{{pricing_profile_id}}"
                  ]
                },
                "description": "`DELETE /api/v1/pricing-profiles/{pricingProfile}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\PricingProfileController@destroy`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Payment Term",
          "item": [
            {
              "name": "List Payment Term",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/payment-terms?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "payment-terms"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "is_active",
                      "value": "{{is_active}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "is_default",
                      "value": "{{is_default}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "type",
                      "value": "{{type}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "paginate",
                      "value": "{{paginate}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/payment-terms`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\PaymentTermController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| search | nullable, string |\n| is_active | nullable, string |\n| is_default | nullable, string |\n| type | nullable, string |\n| limit | nullable, string |\n| sort | nullable, string |\n| paginate | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Create Payment Term",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "const response = pm.response.json();",
                      "",
                      "// Check the response status code",
                      "pm.test(\"Status code is 201\", function () {",
                      "    pm.expect(pm.response.code).to.equal(201);",
                      "});",
                      "",
                      "// Save the ID to an environment variable",
                      "pm.environment.set(\"payment_term_id\", response.data.id);"
                    ],
                    "type": "text/javascript",
                    "packages": {},
                    "requests": {}
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"name\": \"after order\", // required\n    \"type\": \"percentage\", // required; percentage, fixed\n    \"value\": 0, // required\n    \"is_default\": true, // optional\n    \"is_active\": false // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/payment-terms",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "payment-terms"
                  ]
                },
                "description": "`POST /api/v1/payment-terms`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\PaymentTermController@store`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\PaymentTerm\\StorePaymentTermRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| name | required, string, max:255, unique:payment_terms,name,NULL,id,company_id,\"NULL\" |\n| type | required, string, Enum |\n| value | required, numeric, min:0, ConditionalRules |\n| is_default | sometimes, boolean |\n| is_active | sometimes, boolean |"
              },
              "response": []
            },
            {
              "name": "Get Payment Term",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/payment-terms/{{payment_term_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "payment-terms",
                    "{{payment_term_id}}"
                  ]
                },
                "description": "`GET /api/v1/payment-terms/{paymentTerm}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\PaymentTermController@show`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Update Payment Term",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"name\": \"after completion\", // optional\n    \"type\": \"percentage\", // optional; percentage, fixed\n    \"value\": 0, // optional\n    \"is_default\": true, // optional\n    \"is_active\": true // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/payment-terms/{{payment_term_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "payment-terms",
                    "{{payment_term_id}}"
                  ]
                },
                "description": "`PUT /api/v1/payment-terms/{paymentTerm}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\PaymentTermController@update`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\PaymentTerm\\UpdatePaymentTermRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| name | sometimes, string, max:255, unique:payment_terms,name,NULL,id,company_id,\"NULL\" |\n| type | sometimes, string, Enum |\n| value | sometimes, numeric, min:0, ConditionalRules |\n| is_default | sometimes, boolean |\n| is_active | sometimes, boolean |"
              },
              "response": []
            },
            {
              "name": "Delete Payment Term",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/payment-terms/{{payment_term_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "payment-terms",
                    "{{payment_term_id}}"
                  ]
                },
                "description": "`DELETE /api/v1/payment-terms/{paymentTerm}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\PaymentTermController@destroy`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Asset Specification",
          "item": [
            {
              "name": "List Asset Specification",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/asset-specifications?sort={{sort}}&limit={{limit}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "asset-specifications"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "is_active",
                      "value": "{{is_active}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "asset_style_id",
                      "value": "{{asset_style_id}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/asset-specifications`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AssetSpecificationController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| search | nullable, string |\n| is_active | nullable, string |\n| asset_style_id | nullable, string |\n| sort | nullable, string |\n| limit | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Create Asset Specification",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "const response = pm.response.json();",
                      "",
                      "// Check the response status code",
                      "pm.test(\"Status code is 201\", function () {",
                      "    pm.expect(pm.response.code).to.equal(201);",
                      "});",
                      "",
                      "// Save the ID to an environment variable",
                      "pm.environment.set(\"asset_specification_id\", response.data.id);"
                    ],
                    "type": "text/javascript",
                    "packages": {},
                    "requests": {}
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"asset_style_id\": {{asset_style_id}}, // required\n    \"pricing_profile_id\": {{pricing_profile_id}}, // required\n    \"name\": \"10 yard specifications\", // required\n    \"capacity\": 10, // optional\n    \"capacity_unit\": \"yard\", // optional\n    \"length\": 10, // optional\n    \"width\": 30, // optional\n    \"height\": 5, // optional\n    \"dimension_unit\": \"feet\", // optional\n    \"empty_weight\": \"1000\", // optional\n    \"weight_unit\": \"pound\", // optional; poupoundnds, ton\n    \"maximum_load_weight\": \"2000\", // optional\n    \"image\": \"{{imagePath}}\", // optional\n    \"is_active\": true // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/asset-specifications",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "asset-specifications"
                  ]
                },
                "description": "`POST /api/v1/asset-specifications`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AssetSpecificationController@store`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\AssetSpecification\\StoreAssetSpecificationRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| asset_style_id | required, integer, exists:asset_styles,id,company_id,\"NULL\" |\n| pricing_profile_id | required, integer, exists:pricing_profiles,id,company_id,\"NULL\" |\n| name | required, string, max:255, unique:asset_specifications,name,NULL,id,company_id,\"NULL\",asset_style_id,\"NULL\" |\n| capacity | nullable, numeric, min:0 |\n| capacity_unit | nullable, string, max:50 |\n| length | nullable, numeric, min:0 |\n| width | nullable, numeric, min:0 |\n| height | nullable, numeric, min:0 |\n| dimension_unit | nullable, string, max:50 |\n| empty_weight | nullable, numeric, min:0 |\n| weight_unit | nullable, string, Enum |\n| maximum_load_weight | nullable, numeric, min:0 |\n| image | nullable, url, max:2048 |\n| is_active | sometimes, boolean |"
              },
              "response": []
            },
            {
              "name": "Get Asset Specification",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/asset-specifications/{{asset_specification_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "asset-specifications",
                    "{{asset_specification_id}}"
                  ]
                },
                "description": "`GET /api/v1/asset-specifications/{assetSpecification}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AssetSpecificationController@show`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Update Asset Specification",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"asset_style_id\": {{asset_style_id}}, // optional\n    \"pricing_profile_id\": {{pricing_profile_id}}, // optional\n    \"name\": \"10 yard specs\", // required\n    \"capacity\": 10, // optional\n    \"capacity_unit\": \"yard\", // optional\n    \"length\": 10, // optional\n    \"width\": 30, // optional\n    \"height\": 5, // optional\n    \"dimension_unit\": \"feet\", // optional\n    \"empty_weight\": \"1000\", // optional\n    \"weight_unit\": \"pound\", // optional; poupoundnds, ton\n    \"maximum_load_weight\": \"2000\", // optional\n    \"image\": \"{{imagePath}}\", // optional\n    \"is_active\": true // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/asset-specifications/{{asset_specification_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "asset-specifications",
                    "{{asset_specification_id}}"
                  ]
                },
                "description": "`PUT /api/v1/asset-specifications/{assetSpecification}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AssetSpecificationController@update`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\AssetSpecification\\UpdateAssetSpecificationRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| asset_style_id | sometimes, integer, exists:asset_styles,id,company_id,\"NULL\" |\n| pricing_profile_id | sometimes, integer, exists:pricing_profiles,id,company_id,\"NULL\" |\n| name | required, string, max:255, unique:asset_specifications,name,NULL,id,company_id,\"NULL\",asset_style_id,\"NULL\" |\n| capacity | nullable, numeric, min:0 |\n| capacity_unit | nullable, string, max:50 |\n| length | nullable, numeric, min:0 |\n| width | nullable, numeric, min:0 |\n| height | nullable, numeric, min:0 |\n| dimension_unit | nullable, string, max:50 |\n| empty_weight | nullable, numeric, min:0 |\n| weight_unit | nullable, string, Enum |\n| maximum_load_weight | nullable, numeric, min:0 |\n| image | sometimes, nullable, url, max:2048 |\n| is_active | sometimes, boolean |"
              },
              "response": []
            },
            {
              "name": "Delete Asset Specification",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/asset-specifications/{{asset_specification_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "asset-specifications",
                    "{{asset_specification_id}}"
                  ]
                },
                "description": "`DELETE /api/v1/asset-specifications/{assetSpecification}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AssetSpecificationController@destroy`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Asset Specification Waste Type",
          "item": [
            {
              "name": "List Asset Specification Waste Type",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/asset-specifications/{{asset_specification_id}}/waste-types?sort={{sort}}&limit={{limit}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "asset-specifications",
                    "{{asset_specification_id}}",
                    "waste-types"
                  ],
                  "query": [
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/asset-specifications/{assetSpecification}/waste-types`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AssetSpecificationWasteTypeController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| sort | nullable, string |\n| limit | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Create Asset Specification Waste Type",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"waste_type_id\": {{waste_type_id}}, // required\n    \"price_adjustment_type\": null, // optional; fixed_add fixed_subtract percentage_add percentage_subtract\n    \"price_adjustment_value\": null, // optional\n    \"notes\": null // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/asset-specifications/{{asset_specification_id}}/waste-types",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "asset-specifications",
                    "{{asset_specification_id}}",
                    "waste-types"
                  ]
                },
                "description": "`POST /api/v1/asset-specifications/{assetSpecification}/waste-types`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AssetSpecificationWasteTypeController@store`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\AssetSpecificationWasteType\\StoreAssetSpecificationWasteTypeRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| waste_type_id | required, integer, exists:waste_types,id,company_id,\"NULL\", unique:asset_specification_waste_type,waste_type_id,NULL,id,company_id,\"NULL\",asset_specification_id,\"NULL\" |\n| price_adjustment_type | sometimes, string, Enum |\n| price_adjustment_value | sometimes, numeric, min:0 |\n| notes | nullable, string |"
              },
              "response": []
            },
            {
              "name": "Get Asset Specification Waste Type",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/asset-specifications/{{asset_specification_id}}/waste-types/{{asset_specification_waste_type_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "asset-specifications",
                    "{{asset_specification_id}}",
                    "waste-types",
                    "{{asset_specification_waste_type_id}}"
                  ]
                },
                "description": "`GET /api/v1/asset-specifications/{assetSpecification}/waste-types/{assetSpecificationWasteType}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AssetSpecificationWasteTypeController@show`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Update Asset Specification Waste Type",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"waste_type_id\": {{waste_type_id}}, // optional\n    \"price_adjustment_type\": null, // optional\n    \"price_adjustment_value\": null, // optional\n    \"notes\": null // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/asset-specifications/{{asset_specification_id}}/waste-types/{{asset_specification_waste_type_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "asset-specifications",
                    "{{asset_specification_id}}",
                    "waste-types",
                    "{{asset_specification_waste_type_id}}"
                  ]
                },
                "description": "`PUT /api/v1/asset-specifications/{assetSpecification}/waste-types/{assetSpecificationWasteType}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AssetSpecificationWasteTypeController@update`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\AssetSpecificationWasteType\\UpdateAssetSpecificationWasteTypeRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| waste_type_id | sometimes, integer, exists:waste_types,id,company_id,\"NULL\", unique:asset_specification_waste_type,waste_type_id,NULL,id,company_id,\"NULL\",asset_specification_id,\"NULL\" |\n| price_adjustment_type | sometimes, string, Enum |\n| price_adjustment_value | sometimes, numeric, min:0 |\n| notes | nullable, string |"
              },
              "response": []
            },
            {
              "name": "Delete Asset Specification Waste Type",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/asset-specifications/{{asset_specification_id}}/waste-types/{{asset_specification_waste_type_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "asset-specifications",
                    "{{asset_specification_id}}",
                    "waste-types",
                    "{{asset_specification_waste_type_id}}"
                  ]
                },
                "description": "`DELETE /api/v1/asset-specifications/{assetSpecification}/waste-types/{assetSpecificationWasteType}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AssetSpecificationWasteTypeController@destroy`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Asset",
          "item": [
            {
              "name": "List Asset",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/assets?sort={{sort}}&limit={{limit}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "assets"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "is_active",
                      "value": "{{is_active}}",
                      "description": "nullable, boolean",
                      "disabled": true
                    },
                    {
                      "key": "operational_status",
                      "value": "parked",
                      "description": "nullable, string. Allowed: \"parked\", \"assigned\", \"in_transit\", \"in_transit_full\", \"in_use\", \"in_use_full\", \"staged_full\", \"temp_dropped\", \"idle\", \"down\", \"maintenance\"",
                      "disabled": true
                    },
                    {
                      "key": "condition_status",
                      "value": "operational",
                      "description": "nullable, string. Allowed: \"operational\", \"impaired\", \"degraded\", \"compromised\", \"inoperable\"",
                      "disabled": true
                    },
                    {
                      "key": "asset_category_id",
                      "value": "{{asset_category_id}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "asset_style_id",
                      "value": "{{asset_style_id}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "asset_specification_id",
                      "value": "{{asset_specification_id}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/assets`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AssetController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\nEach asset includes auto-generated `uuid` (unique). Search also matches `uuid`.\n\n| Query Param | Rules |\n|---|---|\n| search | nullable, string |\n| is_active | nullable, boolean |\n| operational_status | nullable, string â€” allowed: \"parked\", \"assigned\", \"in_transit\", \"in_transit_full\", \"in_use\", \"in_use_full\", \"staged_full\", \"temp_dropped\", \"idle\", \"down\", \"maintenance\" |\n| condition_status | nullable, string â€” allowed: \"operational\", \"impaired\", \"degraded\", \"compromised\", \"inoperable\" |\n| asset_category_id | nullable, string |\n| asset_style_id | nullable, string |\n| asset_specification_id | nullable, string |\n| sort | nullable, string |\n| limit | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Create Asset",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "const response = pm.response.json();\r",
                      "\r",
                      "// Check the response status code\r",
                      "pm.test(\"Status code is 201\", function () {\r",
                      "    pm.expect(pm.response.code).to.equal(201);\r",
                      "});\r",
                      "\r",
                      "// Save the ID to an environment variable\r",
                      "pm.environment.set(\"asset_id\", response.data.id);"
                    ],
                    "type": "text/javascript",
                    "packages": {},
                    "requests": {}
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"asset_specification_id\": \"{{asset_specification_id}}\", // required\n    \"lot_id\": \"{{lot_id}}\", // optional\n    \"location\": { // optional\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1200 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    },\n    \"asset_number\": \"Asset Number\", // required\n    \"vin_serial_number\": null, // optional\n    \"image\": null, // optional\n    \"icon\": null, // optional\n    \"is_active\": true, // optional\n    \"operational_status\": \"{{operational_status}}\", // optional\n    \"condition_status\": \"{{condition_status}}\", // optional\n    \"manufacture_year\": null, // optional\n    \"make\": null, // optional\n    \"model\": null, // optional\n    \"notes\": null, // optional\n    \"waste_type_ids\": [] // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/assets",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "assets"
                  ]
                },
                "description": "`POST /api/v1/assets`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AssetController@store`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Asset\\StoreAssetRequest::rules()`\n\nResponse includes auto-generated `uuid`.\n\n| Field | Rules |\n|---|---|\n| asset_specification_id | required, integer, exists:asset_specifications,id,company_id,\"NULL\" |\n| lot_id | nullable, integer, exists:lots,id,company_id,\"NULL\" |\n| location | LocationPayload |\n| asset_number | required, string, max:255, unique:assets,asset_number,NULL,id,company_id,\"NULL\" |\n| vin_serial_number | nullable, string, max:255 |\n| image | nullable, nullable, url, max:2048 |\n| icon | nullable, string, max:255 |\n| is_active | nullable, boolean |\n| operational_status | nullable, string, Enum â€” allowed: \"parked\", \"assigned\", \"in_transit\", \"in_transit_full\", \"in_use\", \"in_use_full\", \"staged_full\", \"temp_dropped\", \"idle\", \"down\", \"maintenance\" |\n| condition_status | nullable, string, Enum â€” allowed: \"operational\", \"impaired\", \"degraded\", \"compromised\", \"inoperable\" |\n| manufacture_year | nullable, integer, min:1900, max:2027 |\n| make | nullable, string, max:255 |\n| model | nullable, string, max:255 |\n| notes | nullable, string |\n| waste_type_ids | nullable, array |"
              },
              "response": []
            },
            {
              "name": "Get Asset",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/assets/{{asset_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "assets",
                    "{{asset_id}}"
                  ]
                },
                "description": "`GET /api/v1/assets/{asset}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AssetController@show`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n\nResponse includes auto-generated `uuid`.\n"
              },
              "response": []
            },
            {
              "name": "Update Asset",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"asset_specification_id\": \"{{asset_specification_id}}\", // optional\n    \"lot_id\": \"{{lot_id}}\", // optional\n    \"location\": { // optional\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1200 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    },\n    \"asset_number\": \"Asset Number\", // required\n    \"vin_serial_number\": null, // optional\n    \"image\": null, // optional\n    \"icon\": null, // optional\n    \"is_active\": true, // optional\n    \"operational_status\": \"available\", // optional\n    \"condition_status\": \"operational\", // optional\n    \"manufacture_year\": null, // optional\n    \"make\": null, // optional\n    \"model\": null, // optional\n    \"notes\": null, // optional\n    \"waste_type_ids\": [] // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/assets/{{asset_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "assets",
                    "{{asset_id}}"
                  ]
                },
                "description": "`PUT /api/v1/assets/{asset}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AssetController@update`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Asset\\UpdateAssetRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| asset_specification_id | sometimes, integer, exists:asset_specifications,id,company_id,\"NULL\" |\n| lot_id | nullable, integer, exists:lots,id,company_id,\"NULL\" |\n| location | LocationPayload |\n| asset_number | required, string, max:255, unique:assets,asset_number,NULL,id,company_id,\"NULL\" |\n| vin_serial_number | nullable, string, max:255 |\n| image | sometimes, nullable, url, max:2048 |\n| icon | nullable, string, max:255 |\n| is_active | sometimes, boolean |\n| operational_status | sometimes, string, Enum â€” allowed: \"parked\", \"assigned\", \"in_transit\", \"in_transit_full\", \"in_use\", \"in_use_full\", \"staged_full\", \"temp_dropped\", \"idle\", \"down\", \"maintenance\" |\n| condition_status | sometimes, string, Enum â€” allowed: \"operational\", \"impaired\", \"degraded\", \"compromised\", \"inoperable\" |\n| manufacture_year | nullable, integer, min:1900, max:2027 |\n| make | nullable, string, max:255 |\n| model | nullable, string, max:255 |\n| notes | nullable, string |\n| waste_type_ids | nullable, array |"
              },
              "response": []
            },
            {
              "name": "Delete Asset",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/assets/{{asset_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "assets",
                    "{{asset_id}}"
                  ]
                },
                "description": "`DELETE /api/v1/assets/{asset}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AssetController@destroy`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Update Asset Location",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"location\": { // optional\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1200 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/assets/{{asset_id}}/location",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "assets",
                    "{{asset_id}}",
                    "location"
                  ]
                },
                "description": "`PUT /api/v1/assets/{asset}/location`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AssetLocationController@update`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Asset\\UpdateAssetLocationRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| location | LocationPayload |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Truck Type",
          "item": [
            {
              "name": "List Truck Type",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/truck-types?sort={{sort}}&limit={{limit}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "truck-types"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "is_active",
                      "value": "{{is_active}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/truck-types`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\TruckTypeController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| search | nullable, string |\n| is_active | nullable, string |\n| sort | nullable, string |\n| limit | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Create Truck Type",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "const response = pm.response.json();\r",
                      "\r",
                      "// Check the response status code\r",
                      "pm.test(\"Status code is 201\", function () {\r",
                      "    pm.expect(pm.response.code).to.equal(201);\r",
                      "});\r",
                      "\r",
                      "// Save the ID to an environment variable\r",
                      "pm.environment.set(\"truck_type_id\", response.data.id);"
                    ],
                    "type": "text/javascript",
                    "packages": {},
                    "requests": {}
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"name\": \"roll off1\", // required\n    \"description\": null, // optional\n    \"is_active\": false, // optional\n    \"compatibility_mode\": \"all\", // optional\n    \"asset_style_ids\": [ // optional\n        1\n    ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/truck-types",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "truck-types"
                  ]
                },
                "description": "`POST /api/v1/truck-types`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\TruckTypeController@store`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\TruckType\\StoreTruckTypeRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| name | required, string, max:255, unique:truck_types,name,NULL,id,company_id,\"NULL\" |\n| description | nullable, string |\n| is_active | sometimes, boolean |\n| compatibility_mode | sometimes, Enum â€” allowed: \"all\", \"restricted\" (default: \"all\") |\n| asset_style_ids | required (when compatibility_mode is \"restricted\"), array, min:1, each id must exist for the company |"
              },
              "response": []
            },
            {
              "name": "Get Truck Type",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/truck-types/{{truck_type_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "truck-types",
                    "{{truck_type_id}}"
                  ]
                },
                "description": "`GET /api/v1/truck-types/{truckType}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\TruckTypeController@show`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Update Truck Type",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"name\": \"Name\", // required\n    \"description\": null, // optional\n    \"is_active\": true, // optional\n    \"compatibility_mode\": \"restricted\", // optional\n    \"asset_style_ids\": [1] // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/truck-types/{{truck_type_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "truck-types",
                    "{{truck_type_id}}"
                  ]
                },
                "description": "`PUT /api/v1/truck-types/{truckType}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\TruckTypeController@update`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\TruckType\\UpdateTruckTypeRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| name | sometimes, required, string, max:255, unique:truck_types,name,NULL,id,company_id,\"NULL\" |\n| description | sometimes, nullable, string |\n| is_active | sometimes, boolean |\n| compatibility_mode | sometimes, Enum â€” allowed: \"all\", \"restricted\" |\n| asset_style_ids | required when compatibility_mode is or remains \"restricted\", array, min:1, each id must exist for the company |"
              },
              "response": []
            },
            {
              "name": "Delete Truck Type",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/truck-types/{{truck_type_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "truck-types",
                    "{{truck_type_id}}"
                  ]
                },
                "description": "`DELETE /api/v1/truck-types/{truckType}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\TruckTypeController@destroy`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Truck",
          "item": [
            {
              "name": "List Truck",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/trucks?sort={{sort}}&limit={{limit}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "trucks"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "is_active",
                      "value": "{{is_active}}",
                      "description": "nullable, boolean",
                      "disabled": true
                    },
                    {
                      "key": "operational_status",
                      "value": "parked",
                      "description": "nullable, string. Allowed: \"idle\", \"in_use\", \"down\", \"maintenance\", \"out_of_service\", \"available\"",
                      "disabled": true
                    },
                    {
                      "key": "condition_status",
                      "value": "operational",
                      "description": "nullable, string. Allowed: \"operational\", \"impaired\", \"degraded\", \"compromised\", \"inoperable\"",
                      "disabled": true
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/trucks`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\TruckController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\nEach truck includes auto-generated `uuid` (unique). Search also matches `uuid`.\n\n| Query Param | Rules |\n|---|---|\n| search | nullable, string |\n| is_active | nullable, boolean |\n| operational_status | nullable, string â€” allowed: \"idle\", \"in_use\", \"down\", \"maintenance\", \"out_of_service\", \"available\" |\n| condition_status | nullable, string â€” allowed: \"operational\", \"impaired\", \"degraded\", \"compromised\", \"inoperable\" |\n| sort | nullable, string |\n| limit | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Create Truck",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "const response = pm.response.json();\r",
                      "\r",
                      "// Check the response status code\r",
                      "pm.test(\"Status code is 201\", function () {\r",
                      "    pm.expect(pm.response.code).to.equal(201);\r",
                      "});\r",
                      "\r",
                      "// Save the ID to an environment variable\r",
                      "pm.environment.set(\"truck_id\", response.data.id);"
                    ],
                    "type": "text/javascript",
                    "packages": {},
                    "requests": {}
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"truck_type_id\": \"{{truck_type_id}}\", // required\n    \"name\": \"Unit 12\", // required\n    \"unit_number\": \"U-12\", // required\n    \"vin\": \"1FUJGHDV8CLBR00001\", // required\n    \"license_plate\": null, // optional\n    \"make\": \"Freightliner\", // optional\n    \"model\": \"Cascadia\", // optional\n    \"year\": 2022, // optional\n    \"image\": null, // optional\n    \"icon\": null, // optional\n    \"is_active\": true, // optional\n    \"operational_status\": \"available\", // optional\n    \"condition_status\": \"operational\", // optional\n    \"notes\": null, // optional\n    \"lot_id\": \"{{lot_id}}\", // optional\n    \"location\": { // optional\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1200 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/trucks",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "trucks"
                  ]
                },
                "description": "`POST /api/v1/trucks`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\TruckController@store`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Truck\\StoreTruckRequest::rules()`\n\nResponse includes auto-generated `uuid`.\n\n| Field | Rules |\n|---|---|\n| truck_type_id | required, integer, exists active truck_types for company |\n| name | required, string, max:255 |\n| unit_number | required, string, max:255, unique per company |\n| vin | required, string, max:255, unique per company |\n| license_plate | nullable, string, max:255 |\n| make | nullable, string, max:255 |\n| model | nullable, string, max:255 |\n| year | nullable, integer, min:1900, max:year+1 |\n| image | nullable, url, max:2048 |\n| icon | nullable, string, max:255 |\n| is_active | nullable, boolean |\n| operational_status | nullable, string, Enum â€” allowed: \"idle\", \"in_use\", \"down\", \"maintenance\", \"out_of_service\", \"available\" |\n| condition_status | nullable, string, Enum â€” allowed: \"operational\", \"impaired\", \"degraded\", \"compromised\", \"inoperable\" |\n| notes | nullable, string |\n| lot_id | nullable, integer, exists active open lots for company |\n| location | LocationPayload |"
              },
              "response": []
            },
            {
              "name": "Get Truck",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/trucks/{{truck_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "trucks",
                    "{{truck_id}}"
                  ]
                },
                "description": "`GET /api/v1/trucks/{truck}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\TruckController@show`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n\nResponse includes auto-generated `uuid`.\n"
              },
              "response": []
            },
            {
              "name": "Update Truck",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"truck_type_id\": \"{{truck_type_id}}\", // optional\n    \"name\": \"Unit 12\", // optional\n    \"unit_number\": \"U-12\", // optional\n    \"vin\": \"1FUJGHDV8CLBR00001\", // optional\n    \"license_plate\": null, // optional\n    \"make\": \"Freightliner\", // optional\n    \"model\": \"Cascadia\", // optional\n    \"year\": 2022, // optional\n    \"image\": null, // optional\n    \"icon\": null, // optional\n    \"is_active\": true, // optional\n    \"operational_status\": \"available\", // optional\n    \"condition_status\": \"operational\", // optional\n    \"notes\": null, // optional\n    \"lot_id\": \"{{lot_id}}\", // optional\n    \"location\": { // optional\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1200 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/trucks/{{truck_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "trucks",
                    "{{truck_id}}"
                  ]
                },
                "description": "`PUT /api/v1/trucks/{truck}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\TruckController@update`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Truck\\UpdateTruckRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| truck_type_id | sometimes, integer, exists active truck_types for company |\n| name | sometimes, string, max:255 |\n| unit_number | sometimes, string, max:255, unique per company |\n| vin | sometimes, string, max:255, unique per company |\n| license_plate | nullable, string, max:255 |\n| make | nullable, string, max:255 |\n| model | nullable, string, max:255 |\n| year | nullable, integer, min:1900, max:year+1 |\n| image | sometimes, nullable, url, max:2048 |\n| icon | nullable, string, max:255 |\n| is_active | sometimes, boolean |\n| operational_status | sometimes, string, Enum â€” allowed: \"idle\", \"in_use\", \"down\", \"maintenance\", \"out_of_service\", \"available\" |\n| condition_status | sometimes, string, Enum â€” allowed: \"operational\", \"impaired\", \"degraded\", \"compromised\", \"inoperable\" |\n| notes | nullable, string |\n| lot_id | nullable, integer, exists active open lots for company |\n| location | LocationPayload |"
              },
              "response": []
            },
            {
              "name": "Delete Truck",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/trucks/{{truck_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "trucks",
                    "{{truck_id}}"
                  ]
                },
                "description": "`DELETE /api/v1/trucks/{truck}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\TruckController@destroy`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Update Truck Location",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"location\": { // optional\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1200 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/trucks/{{truck_id}}/location",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "trucks",
                    "{{truck_id}}",
                    "location"
                  ]
                },
                "description": "`PUT /api/v1/trucks/{truck}/location`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\TruckLocationController@update`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Truck\\UpdateTruckLocationRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| location | LocationPayload |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Qr Code",
          "item": [
            {
              "name": "Create Qr Code",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "const response = pm.response.json();\r",
                      "\r",
                      "// Check the response status code\r",
                      "pm.test(\"Status code is 201\", function () {\r",
                      "    pm.expect(pm.response.code).to.equal(201);\r",
                      "});\r",
                      "\r",
                      "// Save the ID to an environment variable\r",
                      "pm.environment.set(\"qr_code_id\", response.data.id);",
                      "if (response.data && response.data.uuid) pm.environment.set(\"qr_uuid\", response.data.uuid);"
                    ],
                    "type": "text/javascript",
                    "packages": {},
                    "requests": {}
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"model\": \"asset\", // required\n    \"model_id\": {{model_id}} // required\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/qr-codes",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "qr-codes"
                  ]
                },
                "description": "`POST /api/v1/qr-codes`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\QrCodeController@store`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\QrCode\\StoreQrCodeRequest::rules()`\n\nCompany-only. Generates (or returns existing) PNG/SVG for an asset or truck.\n\n| Field | Rules |\n|---|---|\n| model | required, string, in:asset,assets,truck |\n| model_id | required, integer, min:1 |"
              },
              "response": []
            },
            {
              "name": "Get Qr Code",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/qr-codes/{{qr_code_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "qr-codes",
                    "{{qr_code_id}}"
                  ]
                },
                "description": "`GET /api/v1/qr-codes/{qrCode}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\QrCodeController@show`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Promotion",
          "item": [
            {
              "name": "List Promotion",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/promotions?sort={{sort}}&limit={{limit}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "promotions"
                  ],
                  "query": [
                    {
                      "key": "status",
                      "value": "{{status}}",
                      "description": "optional; nullable, string, in:active,upcoming,expired,deactive (allowed: active, upcoming, expired, deactive)",
                      "disabled": true
                    },
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "optional; nullable, string, max:255",
                      "disabled": true
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "optional; nullable, string, in:asc,desc (allowed: asc, desc)"
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "optional; nullable, integer, min:1, max:100"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "optional; nullable",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/promotions`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\PromotionController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Promotion\\IndexPromotionRequest::rules()`\n\n| Query Param | Rules |\n|---|---|\n| status | nullable, string, in:active,upcoming,expired,deactive (allowed: active, upcoming, expired, deactive) |\n| search | nullable, string, max:255 |\n| sort | nullable, string, in:asc,desc (allowed: asc, desc) |\n| limit | nullable, integer, min:1, max:100 |\n| pagination | nullable |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Create Promotion",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "const response = pm.response.json();\r",
                      "\r",
                      "// Check the response status code\r",
                      "pm.test(\"Status code is 201\", function () {\r",
                      "    pm.expect(pm.response.code).to.equal(201);\r",
                      "});\r",
                      "\r",
                      "// Save the ID to an environment variable\r",
                      "pm.environment.set(\"promotion_id\", response.data.id);"
                    ],
                    "type": "text/javascript",
                    "packages": {},
                    "requests": {}
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"asset_specification_ids\": [ // required\n        1\n    ],\n    \"name\": \"Summer Dumpster Discount\", // required\n    \"description\": \"Limited-time discount for selected asset specifications.\", // optional\n    \"banner\": \"{{imagePath}}\", // optional\n    \"start_date\": \"{{start_date}}\", // required\n    \"end_date\": \"{{end_date}}\", // required\n    \"discount_type\": \"percentage\", // required; percentage, flat\n    \"discount\": 10, // required\n    \"status\": \"published\", // optional; published, cancelled\n    \"is_active\": true // optional; true, false\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/promotions/create",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "promotions",
                    "create"
                  ]
                },
                "description": "`POST /api/v1/promotions/create`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\PromotionController@store`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Promotion\\StorePromotionRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| asset_specification_ids | required, array, min:1 |\n| name | required, string, max:255 |\n| description | nullable, string |\n| banner | nullable, string, max:2048 |\n| start_date | required, date, date_format:Y-m-d |\n| end_date | required, date, date_format:Y-m-d |\n| discount_type | required, in:\"percentage\",\"flat\" |\n| discount | required, numeric, min:0 |\n| status | required, in:active,deactive |"
              },
              "response": []
            },
            {
              "name": "Get Promotion",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/promotions/{{promotion_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "promotions",
                    "{{promotion_id}}"
                  ]
                },
                "description": "`GET /api/v1/promotions/{promotion}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\PromotionController@show`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Update Promotion",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"asset_specification_ids\": [ // optional\n        1\n    ],\n    \"name\": \"Summer Dumpster Discount\", // optional\n    \"description\": \"Updated promotion description.\", // optional\n    \"banner\": \"{{imagePath}}\", // optional\n    \"start_date\": \"{{start_date}}\", // optional\n    \"end_date\": \"{{end_date}}\", // optional\n    \"discount_type\": \"percentage\", // optional; percentage, flat\n    \"discount\": 15, // optional\n    \"status\": \"published\", // optional; published, cancelled\n    \"is_active\": true // optional; true, false\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/promotions/{{promotion_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "promotions",
                    "{{promotion_id}}"
                  ]
                },
                "description": "`PUT /api/v1/promotions/{promotion}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\PromotionController@update`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Promotion\\UpdatePromotionRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| asset_specification_ids | sometimes, array, min:1 |\n| name | sometimes, string, max:255 |\n| description | nullable, string |\n| banner | nullable, string, max:2048 |\n| start_date | sometimes, date, date_format:Y-m-d |\n| end_date | sometimes, date, date_format:Y-m-d |\n| discount_type | sometimes, in:\"percentage\",\"flat\" |\n| discount | sometimes, numeric, min:0 |\n| status | sometimes, in:active,deactive |"
              },
              "response": []
            },
            {
              "name": "Delete Promotion",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/promotions/{{promotion_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "promotions",
                    "{{promotion_id}}"
                  ]
                },
                "description": "`DELETE /api/v1/promotions/{promotion}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\PromotionController@destroy`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Policy",
          "item": [
            {
              "name": "List Policy",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/policies?sort={{sort}}&limit={{limit}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "policies"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "optional; nullable, string, max:255",
                      "disabled": true
                    },
                    {
                      "key": "is_active",
                      "value": "{{is_active}}",
                      "description": "optional; nullable, boolean",
                      "disabled": true
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "optional; nullable, string, in:asc,desc (allowed: asc, desc)"
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "optional; nullable, integer, min:1, max:100"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "optional; nullable",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/policies`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\PolicyController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Policy\\IndexPolicyRequest::rules()`\n\n| Query Param | Rules |\n|---|---|\n| search | nullable, string, max:255 |\n| is_active | nullable, boolean |\n| sort | nullable, string, in:asc,desc (allowed: asc, desc) |\n| limit | nullable, integer, min:1, max:100 |\n| pagination | nullable |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Create Policy",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "const response = pm.response.json();\r",
                      "\r",
                      "// Check the response status code\r",
                      "pm.test(\"Status code is 201\", function () {\r",
                      "    pm.expect(pm.response.code).to.equal(201);\r",
                      "});\r",
                      "\r",
                      "// Save the ID to an environment variable\r",
                      "pm.environment.set(\"policy_id\", response.data.id);"
                    ],
                    "type": "text/javascript",
                    "packages": {},
                    "requests": {}
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"name\": \"Overfilled Dumpster\", // required\n    \"demerit_points\": 5, // required\n    \"severity\": \"medium\", // optional; low, medium, high, critical\n    \"description\": \"Dumpster filled above the rim.\", // optional\n    \"requires_evidence\": true, // optional; true, false\n    \"is_active\": true // optional; true, false\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/policies",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "policies"
                  ]
                },
                "description": "`POST /api/v1/policies`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\PolicyController@store`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Policy\\StorePolicyRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| name | required, string, max:255, unique:policies,name,NULL,id,company_id,\"NULL\" |\n| demerit_points | required, integer, min:0 |\n| severity | sometimes, string, Enum |\n| description | nullable, string |\n| requires_evidence | sometimes, boolean |\n| is_active | sometimes, boolean |"
              },
              "response": []
            },
            {
              "name": "Get Policy",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/policies/{{policy_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "policies",
                    "{{policy_id}}"
                  ]
                },
                "description": "`GET /api/v1/policies/{policy}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\PolicyController@show`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Update Policy",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"name\": \"Overfilled Dumpster\", // optional\n    \"demerit_points\": 10, // optional\n    \"severity\": \"high\", // optional; low, medium, high, critical\n    \"description\": \"Updated policy description.\", // optional\n    \"requires_evidence\": true, // optional; true, false\n    \"is_active\": true // optional; true, false\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/policies/{{policy_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "policies",
                    "{{policy_id}}"
                  ]
                },
                "description": "`PUT /api/v1/policies/{policy}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\PolicyController@update`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Policy\\UpdatePolicyRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| name | sometimes, string, max:255, unique:policies,name,NULL,id,company_id,\"NULL\" |\n| demerit_points | sometimes, integer, min:0 |\n| severity | sometimes, string, Enum |\n| description | nullable, string |\n| requires_evidence | sometimes, boolean |\n| is_active | sometimes, boolean |"
              },
              "response": []
            },
            {
              "name": "Delete Policy",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/policies/{{policy_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "policies",
                    "{{policy_id}}"
                  ]
                },
                "description": "`DELETE /api/v1/policies/{policy}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\PolicyController@destroy`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Customer",
          "item": [
            {
              "name": "Order",
              "item": [
                {
                  "name": "Receive Payment For Orders",
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{company_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "POST",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      },
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "raw": "{\n    \"order_ids\": [ // required\n        1\n    ],\n    \"payment_mode\": \"cash\", // required\n    \"total_amount\": null, // required when payment_mode is cash\n    \"cheque_number\": null, // required when payment_mode is cheque or check\n    \"bank_name\": null, // required when payment_mode is cheque or check\n    \"cheque_date\": null // required when payment_mode is cheque or check\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    },
                    "url": {
                      "raw": "{{base_url}}/api/v1/customers/orders/payment-received",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "customers",
                        "orders",
                        "payment-received"
                      ]
                    },
                    "description": "`POST /api/v1/customers/orders/payment-received`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\CustomerController@receivePaymentForOrders`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** inline Validator::make()/$request->validate() (no dedicated FormRequest â€” best-effort reflection).\n\n| Field | Rules |\n|---|---|\n| order_ids | required, array, min:1 |\n| payment_mode | required, string, in:cash,cheque,check,card,bank_transfer,other |\n| total_amount | required_if:payment_mode,cash, numeric, min:0.01 |\n| cheque_number | required_if:payment_mode,cheque, required_if:payment_mode,check, string, max:50 |\n| bank_name | required_if:payment_mode,cheque, required_if:payment_mode,check, string, max:100 |\n| cheque_date | required_if:payment_mode,cheque, required_if:payment_mode,check, date |"
                  },
                  "response": []
                },
                {
                  "name": "Customers With Pending Due Orders",
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{company_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{base_url}}/api/v1/customers/pending-dues/orders/get?sort={{sort}}&limit={{limit}}&page=1",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "customers",
                        "pending-dues",
                        "orders",
                        "get"
                      ],
                      "query": [
                        {
                          "key": "search",
                          "value": "{{search}}",
                          "description": "optional; nullable, string, max:255",
                          "disabled": true
                        },
                        {
                          "key": "is_active",
                          "value": "{{is_active}}",
                          "description": "optional; nullable, boolean",
                          "disabled": true
                        },
                        {
                          "key": "sort",
                          "value": "{{sort}}",
                          "description": "optional; nullable, string, in:asc,desc (allowed: asc, desc)"
                        },
                        {
                          "key": "limit",
                          "value": "{{limit}}",
                          "description": "optional; nullable, integer, min:1, max:100"
                        },
                        {
                          "key": "pagination",
                          "value": "{{pagination}}",
                          "description": "optional; nullable",
                          "disabled": true
                        },
                        {
                          "key": "page",
                          "value": "1",
                          "description": "Page number for paginated results"
                        }
                      ]
                    },
                    "description": "`GET /api/v1/customers/pending-dues/orders/get`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\CustomerController@customersWithPendingDueOrders`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Customer\\IndexCustomerRequest::rules()`\n\n| Query Param | Rules |\n|---|---|\n| search | nullable, string, max:255 |\n| is_active | nullable, boolean |\n| sort | nullable, string, in:asc,desc (allowed: asc, desc) |\n| limit | nullable, integer, min:1, max:100 |\n| pagination | nullable |\n| page | Page number for paginated results |"
                  },
                  "response": []
                },
                {
                  "name": "Get Pending Due Orders",
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{company_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{base_url}}/api/v1/customers/{{customer_id}}/pending-dues/orders?sort={{sort}}&limit={{limit}}&page=1",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "customers",
                        "{{customer_id}}",
                        "pending-dues",
                        "orders"
                      ],
                      "query": [
                        {
                          "key": "sort",
                          "value": "{{sort}}",
                          "description": "nullable, string"
                        },
                        {
                          "key": "limit",
                          "value": "{{limit}}",
                          "description": "nullable, string"
                        },
                        {
                          "key": "pagination",
                          "value": "{{pagination}}",
                          "description": "nullable, string",
                          "disabled": true
                        },
                        {
                          "key": "page",
                          "value": "1",
                          "description": "Page number for paginated results"
                        }
                      ]
                    },
                    "description": "`GET /api/v1/customers/{customerId}/pending-dues/orders`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\CustomerController@getPendingDueOrders`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| sort | nullable, string |\n| limit | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
                  },
                  "response": []
                },
                {
                  "name": "Get Total Pending Due Orders",
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{company_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{base_url}}/api/v1/total-pending-dues?limit={{limit}}&sort={{sort}}&page=1",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "total-pending-dues"
                      ],
                      "query": [
                        {
                          "key": "limit",
                          "value": "{{limit}}",
                          "description": "nullable|integer|min:1|max:100"
                        },
                        {
                          "key": "sort",
                          "value": "{{sort}}",
                          "description": "nullable|string|in:asc,desc"
                        },
                        {
                          "key": "page",
                          "value": "1",
                          "description": "Page number for paginated results"
                        }
                      ]
                    },
                    "description": "`GET /api/v1/total-pending-dues`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\CustomerController@getTotalPendingDueOrders`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
                  },
                  "response": []
                }
              ]
            },
            {
              "name": "List Customer",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customers?sort={{sort}}&limit={{limit}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customers"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "optional; nullable, string, max:255",
                      "disabled": true
                    },
                    {
                      "key": "is_active",
                      "value": "{{is_active}}",
                      "description": "optional; nullable, boolean",
                      "disabled": true
                    },
                    {
                      "key": "is_delinquent",
                      "value": "{{is_delinquent}}",
                      "description": "optional; nullable, boolean; omit for all; true = delinquent only; false = non-delinquent only",
                      "disabled": true
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "optional; nullable, string, in:asc,desc (allowed: asc, desc)"
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "optional; nullable, integer, min:1, max:100"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/customers`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\CustomerController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Customer\\IndexCustomerRequest::rules()`\n\n| Query Param | Rules |\n|---|---|\n| search | nullable, string, max:255 |\n| is_active | nullable, boolean |\n| is_delinquent | nullable, boolean (omit = all customers) |\n| sort | nullable, string, in:asc,desc (allowed: asc, desc) |\n| limit | nullable, integer, min:1, max:100 |\n| pagination | nullable |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Create Customer",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "const response = pm.response.json();\r",
                      "\r",
                      "// Check the response status code\r",
                      "pm.test(\"Status code is 201\", function () {\r",
                      "    pm.expect(pm.response.code).to.equal(201);\r",
                      "});\r",
                      "\r",
                      "// Save the ID to an environment variable\r",
                      "pm.environment.set(\"customer_id\", response.data.id);"
                    ],
                    "type": "text/javascript",
                    "packages": {},
                    "requests": {}
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"first_name\": \"First Name\", // required\n    \"last_name\": null, // optional\n    \"email\": \"customer5@gmail.com\", // required\n    \"phone\": \"Phone\", // required\n    \"address\": { // optional\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1200 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    },\n    \"image\": \"{{imagePath}}\", // optional\n    \"payment_term_id\": \"{{payment_term_id}}\" // required\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/create",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "create"
                  ]
                },
                "description": "`POST /api/v1/customer/create`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\CustomerController@store`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Customer\\StoreCustomerRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| first_name | required, string |\n| last_name | nullable, string |\n| email | required, string, email:rfc,dns, unique:users,email |\n| phone | required, string |\n| address | nullable, array, AddressPayload |\n| image | nullable, string, max:255 |\n| payment_term_id | required, integer, exists:payment_terms,id (company-scoped) |"
              },
              "response": []
            },
            {
              "name": "Get Customer",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/{{customer_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "{{customer_id}}"
                  ]
                },
                "description": "`GET /api/v1/customer/{customerId}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\CustomerController@show`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Deactivate",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/{{customer_id}}/deactivate",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "{{customer_id}}",
                    "deactivate"
                  ]
                },
                "description": "`POST /api/v1/customer/{customerId}/deactivate`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\CustomerController@deactivate`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Activate",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/{{customer_id}}/activate",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "{{customer_id}}",
                    "activate"
                  ]
                },
                "description": "`POST /api/v1/customer/{customerId}/deactivate`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\CustomerController@deactivate`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Update Customer",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"first_name\": \"First Name\", // required\n    \"last_name\": null, // optional\n    \"email\": null, // optional\n    \"phone\": \"Phone\", // required\n    \"address\": { // optional\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1200 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    },\n    \"image\": \"{{imagePath}}\", // optional\n    \"payment_term_id\": \"{{payment_term_id}}\" // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/{{customer_id}}/update",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "{{customer_id}}",
                    "update"
                  ]
                },
                "description": "`PUT /api/v1/customer/{customerId}/update`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\CustomerController@update`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Customer\\UpdateCustomerRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| first_name | required, string, max:255 |\n| last_name | nullable, string, max:255 |\n| email | nullable, email:rfc,dns, unique:users,email (ignores linked user_id) |\n| phone | required, string, max:255 |\n| address | AddressPayload |\n| image | nullable, string, max:255 |\n| payment_term_id | nullable, integer, exists:payment_terms,id (company-scoped) |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Driver",
          "item": [
            {
              "name": "List Driver",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/drivers?sort={{sort}}&limit={{limit}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "drivers"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "optional; nullable, string, max:255",
                      "disabled": true
                    },
                    {
                      "key": "is_active",
                      "value": "{{is_active}}",
                      "description": "optional; nullable, boolean",
                      "disabled": true
                    },
                    {
                      "key": "operational_status",
                      "value": "{{operational_status}}",
                      "description": "optional; nullable, string, in:\"off\",\"posted\",\"busy\",\"en_route\",\"on_break\",\"waylaid\" (allowed: \"off\", \"posted\", \"busy\", \"en_route\", \"on_break\", \"waylaid\")",
                      "disabled": true
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "optional; nullable, string, in:asc,desc (allowed: asc, desc)"
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "optional; nullable, integer, min:1, max:100"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "optional; nullable",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/drivers`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\DriverController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Driver\\IndexDriverRequest::rules()`\n\nEach driver includes auto-generated `uuid` (unique). Search also matches `uuid`.\n\n**Response statuses**\n- `status`: user account status â€” `active` | `inactive` | `blocked` (`App\\Enums\\Shared\\StatusEnum`)\n- `operational_status`: dispatch status from `drivers.status` â€” `off` | `posted` | `busy` | `en_route` | `on_break` | `waylaid` (`App\\Enums\\Driver\\OperationalStatusEnum`)\n- `is_active`: boolean company activation flag\n\n| Query Param | Rules |\n|---|---|\n| search | nullable, string, max:255 |\n| is_active | nullable, boolean |\n| operational_status | nullable, string, in:\"off\",\"posted\",\"busy\",\"en_route\",\"on_break\",\"waylaid\" (allowed: \"off\", \"posted\", \"busy\", \"en_route\", \"on_break\", \"waylaid\") |\n| sort | nullable, string, in:asc,desc (allowed: asc, desc) |\n| limit | nullable, integer, min:1, max:100 |\n| pagination | nullable |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Create Driver",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "const response = pm.response.json();\r",
                      "\r",
                      "// Check the response status code\r",
                      "pm.test(\"Status code is 201\", function () {\r",
                      "    pm.expect(pm.response.code).to.equal(201);\r",
                      "});\r",
                      "\r",
                      "// Save the ID to an environment variable\r",
                      "pm.environment.set(\"driver_id\", response.data.id);"
                    ],
                    "type": "text/javascript",
                    "packages": {},
                    "requests": {}
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"full_name\": \"John Driver\", // required\n    \"email\": \"driver@gmail.com\", // required\n    \"phone\": \"555-0100\", // required\n    \"image\": null, // optional\n    \"icon\": null, // optional\n    \"joining_date\": \"2026-08-01\", // optional\n    \"address\": { // required when lot_id is omitted\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1200 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    },\n    \"lot_id\": \"{{lot_id}}\", // optional\n    \"truck_id\": \"{{truck_id}}\", // optional\n    \"license_number\": \"DL-123456\", // required\n    \"license_expiry_date\": \"2027-08-01\", // required\n    \"medical_card\": null, // optional\n    \"notes\": null, // optional\n    \"status\": \"off\", // optional; off, posted, busy, en_route, on_break, waylaid\n    \"is_active\": true, // optional; true, false\n    \"preferred_start_time\": \"08:00\", // optional\n    \"preferred_end_time\": \"17:00\", // optional\n    \"preferred_break_start_time\": \"12:00\", // optional\n    \"preferred_break_duration_minutes\": 30, // optional\n    \"buffer_before_end_shift_minutes\": 30, // optional\n    \"buffer_after_end_shift_minutes\": 30, // optional\n    \"hourly_rate\": 25, // required\n    \"standard_hours_per_day\": 8 // required\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/create",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "create"
                  ]
                },
                "description": "`POST /api/v1/driver/create`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\DriverController@store`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Driver\\StoreDriverRequest::rules()`\n\nResponse includes auto-generated `uuid`.\n\n| Field | Rules |\n|---|---|\n| full_name | required, string, min:2, max:100 |\n| email | required, email:rfc,dns, max:255, unique:users,email |\n| phone | required, string, regex:/^[0-9+\\-\\s()]{7,20}$/ |\n| image | nullable, string, max:256 |\n| icon | nullable, string, max:256 |\n| joining_date | nullable, date |\n| address | AddressPayload |\n| lot_id | nullable, integer, exists:lots,id,company_id,\"NULL\" |\n| truck_id | nullable, integer, exists:trucks,id,company_id,\"NULL\", unique:drivers,truck_id (one truck cannot be assigned to two drivers) |\n| license_number | required, string, max:50 |\n| license_expiry_date | required, date, after_or_equal:today |\n| medical_card | nullable, string, max:256 |\n| notes | nullable, string, max:2000 |\n| status | nullable, string, in:\"off\",\"posted\",\"busy\",\"en_route\",\"on_break\",\"waylaid\" |\n| is_active | nullable, boolean |\n| preferred_start_time | nullable, date_format:H:i |\n| preferred_end_time | nullable, date_format:H:i, after:preferred_start_time |\n| preferred_break_start_time | nullable, date_format:H:i |\n| preferred_break_duration_minutes | nullable, integer, min:0, max:480 |\n| buffer_before_end_shift_minutes | nullable, integer, min:0, max:1440 |\n| buffer_after_end_shift_minutes | nullable, integer, min:0, max:1440 |\n| hourly_rate | required, numeric, min:0, max:999999.99 |\n| standard_hours_per_day | required, numeric, min:0.25, max:24 |"
              },
              "response": []
            },
            {
              "name": "Get Driver",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/{{driver_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "{{driver_id}}"
                  ]
                },
                "description": "`GET /api/v1/driver/{driverId}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\DriverController@show`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n\nResponse includes auto-generated `uuid`.\n\n**Response statuses:** `status` (`active`|`inactive`|`blocked`), `operational_status` (`off`|`posted`|`busy`|`en_route`|`on_break`|`waylaid`), `is_active` (boolean).\n"
              },
              "response": []
            },
            {
              "name": "Update Driver",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"full_name\": \"John Driver\", // required\n    \"email\": \"driver@gmail.com\", // required\n    \"phone\": \"555-0100\", // required\n    \"image\": null, // optional\n    \"icon\": null, // optional\n    \"joining_date\": \"2026-08-01\", // optional\n    \"address\": { // required when lot_id is omitted\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1200 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    },\n    \"lot_id\": \"{{lot_id}}\", // optional\n    \"truck_id\": \"{{truck_id}}\", // optional\n    \"license_number\": \"DL-123456\", // required\n    \"license_expiry_date\": \"2027-08-01\", // required\n    \"medical_card\": null, // optional\n    \"notes\": null, // optional\n    \"status\": \"off\", // optional; off, posted, busy, en_route, on_break, waylaid\n    \"is_active\": true, // optional; true, false\n    \"preferred_start_time\": \"08:00\", // optional\n    \"preferred_end_time\": \"17:00\", // optional\n    \"preferred_break_start_time\": \"12:00\", // optional\n    \"preferred_break_duration_minutes\": 30, // optional\n    \"buffer_before_end_shift_minutes\": 30, // optional\n    \"buffer_after_end_shift_minutes\": 30, // optional\n    \"hourly_rate\": 25, // required\n    \"standard_hours_per_day\": 8 // required\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/{{driver_id}}/update",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "{{driver_id}}",
                    "update"
                  ]
                },
                "description": "`PUT /api/v1/driver/{driverId}/update`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\DriverController@update`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Driver\\UpdateDriverRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| full_name | required, string, min:2, max:100 |\n| email | required, email:rfc,dns, max:255, unique:users,email (ignores linked user_id) |\n| phone | required, string, regex:/^[0-9+\\-\\s()]{7,20}$/ |\n| image | nullable, string, max:256 |\n| icon | nullable, string, max:256 |\n| joining_date | nullable, date |\n| address | AddressPayload |\n| lot_id | nullable, integer, exists:lots,id,company_id,\"NULL\" |\n| truck_id | nullable, integer, exists:trucks,id,company_id,\"NULL\", unique:drivers,truck_id (ignores current driver; one truck cannot be assigned to two drivers) |\n| license_number | required, string, max:50 |\n| license_expiry_date | required, date, after_or_equal:today |\n| medical_card | nullable, string, max:256 |\n| notes | nullable, string, max:2000 |\n| status | nullable, string, in:\"off\",\"posted\",\"busy\",\"en_route\",\"on_break\",\"waylaid\" |\n| is_active | nullable, boolean |\n| preferred_start_time | nullable, date_format:H:i |\n| preferred_end_time | nullable, date_format:H:i, after:preferred_start_time |\n| preferred_break_start_time | nullable, date_format:H:i |\n| preferred_break_duration_minutes | nullable, integer, min:0, max:480 |\n| buffer_before_end_shift_minutes | nullable, integer, min:0, max:1440 |\n| buffer_after_end_shift_minutes | nullable, integer, min:0, max:1440 |\n| hourly_rate | required, numeric, min:0, max:999999.99 |\n| standard_hours_per_day | required, numeric, min:0.25, max:24 |"
              },
              "response": []
            },
            {
              "name": "Deactivate",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/{{driver_id}}/deactivate",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "{{driver_id}}",
                    "deactivate"
                  ]
                },
                "description": "`POST /api/v1/driver/{driverId}/deactivate`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\DriverController@deactivate`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Activate",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/{{driver_id}}/activate",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "{{driver_id}}",
                    "activate"
                  ]
                },
                "description": "`POST /api/v1/driver/{driverId}/activate`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\DriverController@activate`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Get Available Drivers",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/available/drivers?sort={{sort}}&limit={{limit}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "available",
                    "drivers"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "optional; nullable, string, max:255",
                      "disabled": true
                    },
                    {
                      "key": "is_active",
                      "value": "{{is_active}}",
                      "description": "optional; nullable, boolean",
                      "disabled": true
                    },
                    {
                      "key": "operational_status",
                      "value": "{{operational_status}}",
                      "description": "optional; nullable, string, in:\"off\",\"posted\",\"busy\",\"en_route\",\"on_break\",\"waylaid\" (allowed: \"off\", \"posted\", \"busy\", \"en_route\", \"on_break\", \"waylaid\")",
                      "disabled": true
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "optional; nullable, string, in:asc,desc (allowed: asc, desc)"
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "optional; nullable, integer, min:1, max:100"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "optional; nullable",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/available/drivers`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\DriverController@getAvailableDrivers`\n**Resource:** `DriverSummaryResource` â€” all driver fields plus `address` (`lastAddress`) only (no nested lot/truck/company).\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Driver\\IndexDriverRequest::rules()`\n\n**Response:** `status` is operational (`off`|`posted`|`busy`|`en_route`|`on_break`|`waylaid`), `is_active` (boolean), `address` (`AddressResource` or null).\n\n| Query Param | Rules |\n|---|---|\n| search | nullable, string, max:255 |\n| is_active | nullable, boolean |\n| operational_status | nullable, string, in:\"off\",\"posted\",\"busy\",\"en_route\",\"on_break\",\"waylaid\" (allowed: \"off\", \"posted\", \"busy\", \"en_route\", \"on_break\", \"waylaid\") |\n| sort | nullable, string, in:asc,desc (allowed: asc, desc) |\n| limit | nullable, integer, min:1, max:100 |\n| pagination | nullable |\n| page | Page number for paginated results |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Company Leave Request",
          "item": [
            {
              "name": "List Company Leave Request",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/leave-requests?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "leave-requests"
                  ],
                  "query": [
                    {
                      "key": "status",
                      "value": "{{status}}",
                      "description": "optional; nullable, string, in:\"pending\",\"partially_reviewed\",\"approved\",\"partially_approved\",\"rejected\",\"cancelled\",\"expired\" (allowed: \"pending\", \"partially_reviewed\", \"approved\", \"partially_approved\", \"rejected\", \"cancelled\", \"expired\")",
                      "disabled": true
                    },
                    {
                      "key": "from_date",
                      "value": "{{from_date}}",
                      "description": "optional; nullable, date, date_format:Y-m-d",
                      "disabled": true
                    },
                    {
                      "key": "to_date",
                      "value": "{{to_date}}",
                      "description": "optional; nullable, date, date_format:Y-m-d, after_or_equal:from_date",
                      "disabled": true
                    },
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "optional; nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "driver_id",
                      "value": "{{driver_id}}",
                      "description": "optional; nullable, integer, exists:drivers,id",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "optional; nullable, integer, min:1"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "optional; nullable, in:asc,desc (allowed: asc, desc)"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/leave-requests`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\CompanyLeaveRequestController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Leave\\IndexLeaveRequestRequest::rules()`\n\n| Query Param | Rules |\n|---|---|\n| status | nullable, string, in:\"pending\",\"partially_reviewed\",\"approved\",\"partially_approved\",\"rejected\",\"cancelled\",\"expired\" (allowed: \"pending\", \"partially_reviewed\", \"approved\", \"partially_approved\", \"rejected\", \"cancelled\", \"expired\") |\n| from_date | nullable, date, date_format:Y-m-d |\n| to_date | nullable, date, date_format:Y-m-d, after_or_equal:from_date |\n| search | nullable, string |\n| driver_id | nullable, integer, exists:drivers,id |\n| limit | nullable, integer, min:1 |\n| sort | nullable, in:asc,desc (allowed: asc, desc) |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Get Company Leave Request",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/leave-requests/{{leave_request_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "leave-requests",
                    "{{leave_request_id}}"
                  ]
                },
                "description": "`GET /api/v1/leave-requests/{leaveRequest}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\CompanyLeaveRequestController@show`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Approve Dates",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"leave_request_date_ids\": [ // required\n        1\n    ],\n    \"review_note\": null // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/leave-requests/{{leave_request_id}}/approve-dates",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "leave-requests",
                    "{{leave_request_id}}",
                    "approve-dates"
                  ]
                },
                "description": "`POST /api/v1/leave-requests/{leaveRequest}/approve-dates`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\CompanyLeaveRequestController@approveDates`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n\n| Field | Rules |\n|---|---|\n| leave_request_date_ids | required, array |\n| review_note | nullable, string |"
              },
              "response": []
            },
            {
              "name": "Reject Dates",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"dates\": [ // required\n        {\n            \"id\": \"2026-07-21\", // required\n            \"reason\": \"Reason\" // required\n        }\n    ],\n    \"review_note\": null // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/leave-requests/{{leave_request_id}}/reject-dates",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "leave-requests",
                    "{{leave_request_id}}",
                    "reject-dates"
                  ]
                },
                "description": "`POST /api/v1/leave-requests/{leaveRequest}/reject-dates`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\CompanyLeaveRequestController@rejectDates`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Leave\\RejectLeaveRequestDatesRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| dates | required, array, min:1 |\n| review_note | nullable, string, max:2000 |"
              },
              "response": []
            },
            {
              "name": "Review Dates",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"approved_date_ids\": [ // optional\n        1\n    ],\n    \"rejected_dates\": [ // optional\n        {\n            \"id\": null, // required when rejected_dates is sent\n            \"reason\": null // required when rejected_dates is sent\n        }\n    ],\n    \"review_note\": null // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/leave-requests/{{leave_request_id}}/review-dates",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "leave-requests",
                    "{{leave_request_id}}",
                    "review-dates"
                  ]
                },
                "description": "`POST /api/v1/leave-requests/{leaveRequest}/review-dates`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\CompanyLeaveRequestController@reviewDates`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Leave\\ReviewLeaveRequestDatesRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| approved_date_ids | nullable, array |\n| rejected_dates | nullable, array |\n| review_note | nullable, string, max:2000 |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Leave",
          "item": [
            {
              "name": "List Leave",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/leaves?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "leaves"
                  ],
                  "query": [
                    {
                      "key": "status",
                      "value": "{{status}}",
                      "description": "optional; nullable, string, in:\"pending\",\"approved\",\"rejected\",\"cancelled\",\"revoked\",\"history\" (allowed: \"pending\", \"approved\", \"rejected\", \"cancelled\", \"revoked\", \"history\")",
                      "disabled": true
                    },
                    {
                      "key": "from_date",
                      "value": "{{from_date}}",
                      "description": "optional; nullable, date, date_format:Y-m-d",
                      "disabled": true
                    },
                    {
                      "key": "to_date",
                      "value": "{{to_date}}",
                      "description": "optional; nullable, date, date_format:Y-m-d, after_or_equal:from_date",
                      "disabled": true
                    },
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "optional; nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "driver_id",
                      "value": "{{driver_id}}",
                      "description": "optional; nullable, integer, exists:drivers,id",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "optional; nullable, integer, min:1"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "optional; nullable, in:asc,desc (allowed: asc, desc)"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/leaves`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\LeaveController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Leaves\\IndexLeaveRequest::rules()`\n\n| Query Param | Rules |\n|---|---|\n| status | nullable, string, in:\"pending\",\"approved\",\"rejected\",\"cancelled\",\"revoked\",\"history\" (allowed: \"pending\", \"approved\", \"rejected\", \"cancelled\", \"revoked\", \"history\") |\n| from_date | nullable, date, date_format:Y-m-d |\n| to_date | nullable, date, date_format:Y-m-d, after_or_equal:from_date |\n| search | nullable, string |\n| driver_id | nullable, integer, exists:drivers,id |\n| limit | nullable, integer, min:1 |\n| sort | nullable, in:asc,desc (allowed: asc, desc) |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Get Leave",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/leaves/{{leave_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "leaves",
                    "{{leave_id}}"
                  ]
                },
                "description": "`GET /api/v1/leaves/{leave}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\LeaveController@show`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Cancel",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"cancellation_reason\": null // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/leaves/{{leave_id}}/cancel",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "leaves",
                    "{{leave_id}}",
                    "cancel"
                  ]
                },
                "description": "`POST /api/v1/leaves/{leave}/cancel`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\LeaveController@cancel`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Leave\\CancelApprovedLeaveRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| cancellation_reason | nullable, string, max:2000 |"
              },
              "response": []
            },
            {
              "name": "Revoke",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"revocation_reason\": null // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/leaves/{{leave_id}}/revoke",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "leaves",
                    "{{leave_id}}",
                    "revoke"
                  ]
                },
                "description": "`POST /api/v1/leaves/{leave}/revoke`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\LeaveController@revoke`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Leave\\RevokeLeaveRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| revocation_reason | nullable, string, max:2000 |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Notification",
          "item": [
            {
              "name": "List Notification",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/notifications/get?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "notifications",
                    "get"
                  ],
                  "query": [
                    {
                      "key": "status",
                      "value": "{{status}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/notifications/get`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\NotificationController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| status | nullable, string |\n| limit | nullable, string |\n| sort | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Mark All As Read",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/notifications/mark-all-read",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "notifications",
                    "mark-all-read"
                  ]
                },
                "description": "`POST /api/v1/notifications/mark-all-read`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\NotificationController@markAllAsRead`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Delete Notification",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/notifications/{{notification_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "notifications",
                    "{{notification_id}}"
                  ]
                },
                "description": "`DELETE /api/v1/notifications/{id}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\NotificationController@deleteNotification`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Mark As Read",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/notifications/{{notification_id}}/read",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "notifications",
                    "{{notification_id}}",
                    "read"
                  ]
                },
                "description": "`POST /api/v1/notifications/{id}/read`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\NotificationController@markAsRead`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Attendance",
          "item": [
            {
              "name": "List Attendance",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/attendances?sort={{sort}}&limit={{limit}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "attendances"
                  ],
                  "query": [
                    {
                      "key": "driver_id",
                      "value": "{{driver_id}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "from_date",
                      "value": "{{from_date}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "to_date",
                      "value": "{{to_date}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/attendances`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AttendanceController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| driver_id | nullable, string |\n| from_date | nullable, string |\n| to_date | nullable, string |\n| sort | nullable, string |\n| limit | nullable|integer|min:1|max:100 |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Get Attendance",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/attendances/{{attendance_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "attendances",
                    "{{attendance_id}}"
                  ]
                },
                "description": "`GET /api/v1/attendances/{attendanceId}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AttendanceController@show`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Driver Attendances",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/attendances/{{driver_id}}/details?sort={{sort}}&limit={{limit}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "attendances",
                    "{{driver_id}}",
                    "details"
                  ],
                  "query": [
                    {
                      "key": "from_date",
                      "value": "{{from_date}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "to_date",
                      "value": "{{to_date}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/attendances/{driverId}/details`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\AttendanceController@driverAttendances`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| from_date | nullable, string |\n| to_date | nullable, string |\n| sort | nullable, string |\n| limit | nullable|integer|min:1|max:100 |\n| page | Page number for paginated results |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Order",
          "item": [
            {
              "name": "Jobs",
              "item": [
                {
                  "name": "List Job Trees",
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{company_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{base_url}}/api/v1/order/jobs?date={{from_date}}&sort=asc&sort_by=id",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "order",
                        "jobs"
                      ],
                      "query": [
                        {
                          "key": "date",
                          "value": "{{from_date}}",
                          "description": "optional; Y-m-d. Default today if no date/from_date/to_date."
                        },
                        {
                          "key": "from_date",
                          "value": "{{from_date}}",
                          "disabled": true,
                          "description": "optional"
                        },
                        {
                          "key": "to_date",
                          "value": "{{to_date}}",
                          "disabled": true,
                          "description": "optional"
                        },
                        {
                          "key": "order_id",
                          "value": "{{order_id}}",
                          "disabled": true,
                          "description": "optional"
                        },
                        {
                          "key": "driver_id",
                          "value": "{{driver_id}}",
                          "disabled": true,
                          "description": "optional"
                        },
                        {
                          "key": "role",
                          "value": "delivery",
                          "description": "optional; delivery | retrieve",
                          "disabled": true
                        },
                        {
                          "key": "job_type",
                          "value": "delivery_job",
                          "description": "optional; delivery_job | retrieve_job | delivery | retrieve | pickup | any JobTypeEnum",
                          "disabled": true
                        },
                        {
                          "key": "status",
                          "value": "todo",
                          "description": "optional; todo | planned | in_progress | done | cancelled | transferred | aborted",
                          "disabled": true
                        },
                        {
                          "key": "statuses[]",
                          "value": "todo",
                          "description": "optional; nullable, array; multiple statuses",
                          "disabled": true
                        },
                        {
                          "key": "in_progress",
                          "value": "true",
                          "description": "optional; nullable, boolean; in-progress roots only",
                          "disabled": true
                        },
                        {
                          "key": "search",
                          "value": "",
                          "disabled": true,
                          "description": "optional"
                        },
                        {
                          "key": "sort",
                          "value": "asc",
                          "description": "optional"
                        },
                        {
                          "key": "sort_by",
                          "value": "id",
                          "description": "optional; id | scheduled_date | assigned_at | started_at | done_at | execution_sequence"
                        },
                        {
                          "key": "limit",
                          "value": "20",
                          "disabled": true,
                          "description": "optional"
                        },
                        {
                          "key": "pagination",
                          "value": "true",
                          "disabled": true,
                          "description": "optional"
                        }
                      ]
                    },
                    "description": "`GET /api/v1/order/jobs`\n\nRecursive **primary** trees. `children` ordered by `execution_sequence`. Every node includes `open_issue_impact` (`blocking`, `non_blocking`, or `none`) and `open_issue` (the winning open issue summary or `null`). Does not include `driver`, `truck`, `asset`, `asset_specification`, `evidence`, or `issues` â€” use **Job Details**.\n\nIf `date`, `from_date`, and `to_date` are all omitted, the API defaults to **today**.\n\n**Query:** `date`, `from_date`, `to_date` (Y-m-d), `order_id`, `driver_id`, `role` (`delivery`|`retrieve`), `job_type`, `status` (`todo`|`planned`|`in_progress`|`done`|`cancelled`|`transferred`|`aborted`), `statuses[]`, `in_progress`, `search`, `sort` (`asc`|`desc`), `sort_by` (`id`|`scheduled_date`|`assigned_at`|`started_at`|`done_at`|`execution_sequence`), `limit` (1-100), `pagination` (default on).\n\n**Auth:** company JWT. **Legacy flat list:** `GET /api/v1/jobs`."
                  },
                  "response": []
                },
                {
                  "name": "Job Details",
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{company_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{base_url}}/api/v1/order/jobs/{{driver_job_id}}",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "order",
                        "jobs",
                        "{{driver_job_id}}"
                      ]
                    },
                    "description": "`GET /api/v1/order/jobs/{driverJob}`\n\nFull recursive tree (walks to the root). Every node includes `open_issue_impact` (`blocking`, `non_blocking`, or `none`) and `open_issue` (the winning open issue summary or `null`). Root includes `driver`, `truck`, `asset`, `asset_specification` plus `evidence` / `issues` when present. Copy real child `id` values from this response before **Update Job**.\n\nLegacy alias: `GET /api/v1/jobs/{driverJob}` (flat `DriverJobDetailResource`, not the tree)."
                  },
                  "response": []
                },
                {
                  "name": "Create Job",
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{company_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "POST",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      },
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"job_type\": \"delivery_job\", // required (primary root: delivery_job, retrieve_job, or park_the_truck)\n  \"job_category\": \"primary\", // optional (auto-filled from job_type if omitted)\n  \"label\": \"Delivery Job\", // optional (auto-filled from job_type if omitted)\n  \"execution_sequence\": 1, // optional\n  \"scheduled_date\": \"{{from_date}}\", // required when parent_job_id is omitted\n  \"order_id\": {{order_id}}, // optional\n  \"driver_id\": {{driver_id}}, // optional\n  \"truck_id\": {{truck_id}}, // optional\n  \"asset_id\": {{asset_id}}, // optional\n  \"asset_specification_id\": {{asset_specification_id}}, // optional\n  \"status\": \"planned\", // optional: todo or planned\n  \"duration_mins\": 42, // optional; omit to sum from children\n  \"transit_duration_mins\": 0, // optional\n  \"notes\": \"Manual delivery\", // optional\n  \"is_required\": true, // optional\n  \"children\": [ // optional\n    {\n      \"job_type\": \"pickup\", // required\n      \"job_category\": \"bridge\", // optional (auto-filled from job_type if omitted)\n      \"label\": \"Pickup\", // optional (auto-filled from job_type if omitted)\n      \"execution_sequence\": 1, // optional\n      \"duration_mins\": 21, // optional\n      \"transit_duration_mins\": 1, // optional\n      \"is_required\": true, // optional\n      \"from_location\": { // optional\n        \"name\": \"Driver Lot\", // optional\n        \"address\": \"100 Depot Rd, Austin, TX\", // optional\n        \"lat\": 30.2301, // optional\n        \"lng\": -97.7012 // optional\n      },\n      \"to_location\": { // optional\n        \"name\": \"Lot Alpha\", // optional\n        \"address\": \"10 River St, Austin, TX\", // optional\n        \"lat\": 30.2501, // optional\n        \"lng\": -97.7204 // optional\n      },\n      \"children\": [ // optional\n        {\n          \"job_type\": \"empty_inspect_and_attach\", // required\n          \"job_category\": \"static\", // optional (auto-filled from job_type if omitted)\n          \"label\": \"Empty Inspect and Attach\", // optional (auto-filled from job_type if omitted)\n          \"execution_sequence\": 1, // optional\n          \"duration_mins\": 15, // optional\n          \"is_required\": true, // optional\n          \"children\": [] // optional\n        },\n        {\n          \"job_type\": \"qr_code_scan_asset\", // required\n          \"job_category\": \"static\", // optional (auto-filled from job_type if omitted)\n          \"label\": \"QR Code Scan Asset\", // optional (auto-filled from job_type if omitted)\n          \"execution_sequence\": 2, // optional\n          \"duration_mins\": 5, // optional\n          \"is_required\": true, // optional\n          \"children\": [] // optional\n        }\n      ]\n    },\n    {\n      \"job_type\": \"haul\", // required\n      \"job_category\": \"bridge\", // optional (auto-filled from job_type if omitted)\n      \"label\": \"Haul\", // optional (auto-filled from job_type if omitted)\n      \"execution_sequence\": 2, // optional\n      \"duration_mins\": 21, // optional\n      \"transit_duration_mins\": 1, // optional\n      \"is_required\": true, // optional\n      \"from_location\": { // optional\n        \"name\": \"Lot Alpha\", // optional\n        \"address\": \"10 River St, Austin, TX\", // optional\n        \"lat\": 30.2501, // optional\n        \"lng\": -97.7204 // optional\n      },\n      \"to_location\": { // optional\n        \"name\": \"Customer Site\", // optional\n        \"address\": \"500 Main St, Austin, TX\", // optional\n        \"lat\": 30.2672, // optional\n        \"lng\": -97.7431 // optional\n      },\n      \"children\": [ // optional\n        {\n          \"job_type\": \"photo_of_asset\", // required\n          \"job_category\": \"static\", // optional (auto-filled from job_type if omitted)\n          \"label\": \"Photo of Asset\", // optional (auto-filled from job_type if omitted)\n          \"execution_sequence\": 1, // optional\n          \"duration_mins\": 5, // optional\n          \"is_required\": true, // optional\n          \"children\": [] // optional\n        }\n      ]\n    }\n  ]\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    },
                    "url": {
                      "raw": "{{base_url}}/api/v1/order/jobs",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "order",
                        "jobs"
                      ]
                    },
                    "description": "`POST /api/v1/order/jobs`\n\nCreate **one** tree. Body is a **single job object**, not `{ jobs: [] }`.\n\n**Root required:** `job_type` (any JobTypeEnum), `scheduled_date` (`Y-m-d` when `parent_job_id` is omitted). `job_category` and `label` are filled from `job_type` if omitted.\n**Root optional:** `duration_mins` (omit to sum from children; static jobs use catalog minutes; a sent value is kept), `label`, `execution_sequence`, `order_id`, `driver_id`, `truck_id`, `asset_id`, `asset_specification_id`, `status` (`todo` or `planned`; default `planned` on this endpoint), `notes`, `is_required` (default true), `children`.\n\nOrder confirm already created `delivery_job` / `retrieve_job`. Company custom trees may use those primaries or any bridge/static type (`pickup`, `clock_in`, â€¦).\n\n**Each child required:** `job_type`. Send `job_category` too. Do **not** send `id` or `parent_job_id` on nested children.\n**Each child optional:** `label` (from type), `execution_sequence`, `duration_mins`, `transit_duration_mins`, `from_location` `{name,address,lat,lng}`, `to_location`, `notes`, `is_required`, `children`.\nStatic jobs must send `children: []`. Child `job_type` cannot be `delivery_job` or `retrieve_job`. Bridge steps use `delivery` / `retrieve` / `pickup` / `haul`.\n\n**201** returns the root tree."
                  },
                  "response": []
                },
                {
                  "name": "Create Retrieve Job",
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{company_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "POST",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      },
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"job_type\": \"retrieve_job\", // required (primary root)\n  \"job_category\": \"primary\", // optional (auto-filled from job_type if omitted)\n  \"label\": \"Retrieve Job\", // optional (auto-filled from job_type if omitted)\n  \"execution_sequence\": 2, // optional\n  \"scheduled_date\": \"{{to_date}}\", // required when parent_job_id is omitted\n  \"order_id\": {{order_id}}, // optional\n  \"driver_id\": {{driver_id}}, // optional\n  \"truck_id\": {{truck_id}}, // optional\n  \"asset_id\": {{asset_id}}, // optional\n  \"asset_specification_id\": {{asset_specification_id}}, // optional\n  \"status\": \"planned\", // optional: todo or planned\n  \"duration_mins\": 42, // optional; omit to sum from children\n  \"notes\": \"Manual retrieve\", // optional\n  \"is_required\": true, // optional\n  \"children\": [ // optional\n    {\n      \"job_type\": \"retrieve\", // required (bridge child, not retrieve_job)\n      \"job_category\": \"bridge\", // optional (auto-filled from job_type if omitted)\n      \"label\": \"Retrieve\", // optional (auto-filled from job_type if omitted)\n      \"execution_sequence\": 1, // optional\n      \"duration_mins\": 21, // optional\n      \"transit_duration_mins\": 1, // optional\n      \"from_location\": { // optional\n        \"name\": \"Customer Site\", // optional\n        \"address\": \"500 Main St, Austin, TX\", // optional\n        \"lat\": 30.2672, // optional\n        \"lng\": -97.7431 // optional\n      },\n      \"to_location\": { // optional\n        \"name\": \"Lot Alpha\", // optional\n        \"address\": \"10 River St, Austin, TX\", // optional\n        \"lat\": 30.2501, // optional\n        \"lng\": -97.7204 // optional\n      },\n      \"children\": [ // optional\n        {\n          \"job_type\": \"haul_inspect_and_attach\", // required\n          \"job_category\": \"static\", // optional (auto-filled from job_type if omitted)\n          \"label\": \"Haul Inspect and Attach\", // optional (auto-filled from job_type if omitted)\n          \"execution_sequence\": 1, // optional\n          \"duration_mins\": 15, // optional\n          \"children\": [] // optional\n        }\n      ]\n    },\n    {\n      \"job_type\": \"haul\", // required\n      \"job_category\": \"bridge\", // optional (auto-filled from job_type if omitted)\n      \"label\": \"Haul\", // optional (auto-filled from job_type if omitted)\n      \"execution_sequence\": 2, // optional\n      \"duration_mins\": 21, // optional\n      \"transit_duration_mins\": 1, // optional\n      \"children\": [ // optional\n        {\n          \"job_type\": \"photo_of_ticket_post_haul\", // required\n          \"job_category\": \"static\", // optional (auto-filled from job_type if omitted)\n          \"label\": \"Photo of Ticket (Post Haul)\", // optional (auto-filled from job_type if omitted)\n          \"execution_sequence\": 1, // optional\n          \"duration_mins\": 5, // optional\n          \"children\": [] // optional\n        }\n      ]\n    }\n  ]\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    },
                    "url": {
                      "raw": "{{base_url}}/api/v1/order/jobs",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "order",
                        "jobs"
                      ]
                    },
                    "description": "`POST /api/v1/order/jobs`\n\nSame create endpoint. Root `job_type` is `retrieve_job`. Nested travel steps use bridge types such as `retrieve`, `pickup`, and `haul`, not another primary.\n\nUse `{{to_date}}` for the retrieve scheduled date when the order has an end date."
                  },
                  "response": []
                },
                {
                  "name": "Create Child Job",
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{company_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "POST",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      },
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"job_type\": \"pickup\", // required\n  \"job_category\": \"bridge\", // optional (auto-filled from job_type if omitted)\n  \"label\": \"Pickup\", // optional (auto-filled from job_type if omitted)\n  \"parent_job_id\": {{driver_job_id}}, // optional (send to attach under an existing job; omit to create a new tree)\n  \"execution_sequence\": 1, // optional\n  \"duration_mins\": 21, // optional; omit to sum from children\n  \"transit_duration_mins\": 1, // optional\n  \"is_required\": true, // optional\n  \"from_location\": { // optional\n    \"name\": \"Driver Lot\", // optional\n    \"address\": \"100 Depot Rd, Austin, TX\", // optional\n    \"lat\": 30.2301, // optional\n    \"lng\": -97.7012 // optional\n  },\n  \"to_location\": { // optional\n    \"name\": \"Lot Alpha\", // optional\n    \"address\": \"10 River St, Austin, TX\", // optional\n    \"lat\": 30.2501, // optional\n    \"lng\": -97.7204 // optional\n  },\n  \"children\": [ // optional\n    {\n      \"job_type\": \"empty_inspect_and_attach\", // required\n      \"job_category\": \"static\", // optional (auto-filled from job_type if omitted)\n      \"label\": \"Empty Inspect and Attach\", // optional (auto-filled from job_type if omitted)\n      \"execution_sequence\": 1, // optional\n      \"duration_mins\": 15, // optional\n      \"is_required\": true, // optional\n      \"children\": [] // optional\n    },\n    {\n      \"job_type\": \"qr_code_scan_asset\", // required\n      \"job_category\": \"static\", // optional (auto-filled from job_type if omitted)\n      \"label\": \"QR Code Scan Asset\", // optional (auto-filled from job_type if omitted)\n      \"execution_sequence\": 2, // optional\n      \"duration_mins\": 5, // optional\n      \"is_required\": true, // optional\n      \"children\": [] // optional\n    }\n  ]\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    },
                    "url": {
                      "raw": "{{base_url}}/api/v1/order/jobs",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "order",
                        "jobs"
                      ]
                    },
                    "description": "`POST /api/v1/order/jobs`\n\nSame create endpoint. Send `parent_job_id` (unquoted `{{driver_job_id}}`) to add one bridge or static job under an existing parent.\n\n**Required:** `job_type`, `parent_job_id`. Nested children send `job_type` + `job_category` and omit `id`. `duration_mins` is optional (omit to sum from children).\n\nDate, driver, truck, and asset inherit from the parent. Parent `duration_mins` is not auto-updated.\n\n**201** returns the **root tree**, not only the new child."
                  },
                  "response": []
                },
                {
                  "name": "Update Job",
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{company_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "PUT",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      },
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"status\": \"planned\", // optional: todo or planned (omit to leave unchanged)\n  \"scheduled_date\": \"{{from_date}}\", // optional\n  \"order_id\": {{order_id}}, // optional\n  \"driver_id\": {{driver_id}}, // optional\n  \"truck_id\": {{truck_id}}, // optional\n  \"asset_id\": {{asset_id}}, // optional\n  \"asset_specification_id\": {{asset_specification_id}}, // optional\n  \"execution_sequence\": 1, // optional\n  \"duration_mins\": 42, // optional (company-set, not summed)\n  \"transit_duration_mins\": 1, // optional\n  \"notes\": \"Updated by dispatcher\", // optional\n  \"is_required\": true, // optional\n  \"from_location\": { // optional\n    \"name\": \"Driver Lot\", // optional\n    \"address\": \"100 Depot Rd, Austin, TX\", // optional\n    \"lat\": 30.2301, // optional\n    \"lng\": -97.7012 // optional\n  },\n  \"to_location\": { // optional\n    \"name\": \"Lot Alpha\", // optional\n    \"address\": \"10 River St, Austin, TX\", // optional\n    \"lat\": 30.2501, // optional\n    \"lng\": -97.7204 // optional\n  },\n  \"children\": [ // optional; omit the key to leave descendants unchanged\n    {\n      \"job_type\": \"pickup\", // optional when updating an existing child with id\n      \"job_category\": \"bridge\", // optional (auto-filled from job_type if omitted)\n      \"label\": \"Pickup\", // optional (auto-filled from job_type if omitted)\n      \"execution_sequence\": 1, // optional\n      \"duration_mins\": 21, // optional\n      \"transit_duration_mins\": 1, // optional\n      \"from_location\": { // optional\n        \"name\": \"Driver Lot\", // optional\n        \"address\": \"100 Depot Rd, Austin, TX\", // optional\n        \"lat\": 30.2301, // optional\n        \"lng\": -97.7012 // optional\n      },\n      \"to_location\": { // optional\n        \"name\": \"Lot Alpha\", // optional\n        \"address\": \"10 River St, Austin, TX\", // optional\n        \"lat\": 30.2501, // optional\n        \"lng\": -97.7204 // optional\n      },\n      \"children\": [ // optional\n        {\n          \"job_type\": \"empty_inspect_and_attach\", // optional\n          \"job_category\": \"static\", // optional (auto-filled from job_type if omitted)\n          \"label\": \"Empty Inspect and Attach\", // optional (auto-filled from job_type if omitted)\n          \"execution_sequence\": 1, // optional\n          \"duration_mins\": 15, // optional\n          \"children\": [] // optional\n        },\n        {\n          \"job_type\": \"qr_code_scan_asset\", // optional\n          \"job_category\": \"static\", // optional (auto-filled from job_type if omitted)\n          \"label\": \"QR Code Scan Asset\", // optional (auto-filled from job_type if omitted)\n          \"execution_sequence\": 2, // optional\n          \"duration_mins\": 5, // optional\n          \"children\": [] // optional\n        }\n      ]\n    },\n    {\n      \"job_type\": \"delivery\", // optional (bridge child, not delivery_job)\n      \"job_category\": \"bridge\", // optional (auto-filled from job_type if omitted)\n      \"label\": \"Delivery\", // optional (auto-filled from job_type if omitted)\n      \"execution_sequence\": 2, // optional\n      \"duration_mins\": 21, // optional\n      \"transit_duration_mins\": 1, // optional\n      \"children\": [ // optional\n        {\n          \"job_type\": \"photo_of_asset\", // optional\n          \"job_category\": \"static\", // optional (auto-filled from job_type if omitted)\n          \"label\": \"Photo of Asset\", // optional (auto-filled from job_type if omitted)\n          \"execution_sequence\": 1, // optional\n          \"duration_mins\": 5, // optional\n          \"children\": [] // optional\n        }\n      ]\n    }\n  ]\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    },
                    "url": {
                      "raw": "{{base_url}}/api/v1/order/jobs/{{driver_job_id}}",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "order",
                        "jobs",
                        "{{driver_job_id}}"
                      ]
                    },
                    "description": "`PUT /api/v1/order/jobs/{driverJob}`\n\nUpdate **one** job (root or child). Put the job id in the URL (`{{driver_job_id}}`).\n\n**Optional fields:** `status` (`todo` or `planned` only), `scheduled_date`, `order_id`, `driver_id`, `truck_id`, `asset_id`, `asset_specification_id`, `execution_sequence`, `duration_mins`, `transit_duration_mins`, `static_duration_mins`, `from_location`, `to_location`, `notes`, `is_required`, `children`, `remove_job_ids`, `job_type`, `job_category`, `label`.\n\n`status` is allowed only when the job is currently `todo` or `planned`. Setting `planned` on a **root** applies to the whole assignable tree. On a **child**, it applies to that child and its descendants. Omit `status` to leave it unchanged.\n\nOn the parent, omit `job_type` / `job_category` / `label` unless you intend to change them.\n\n`duration_mins` on this endpoint is company-set (not summed). **Omit the `children` key** to leave descendants unchanged. When `children` **is** sent, it is the authoritative list at that level â€” omitted existing child ids are removed (use `children: []` to clear all direct children). Include nested `children` on a child to add/remove/update grandchildren the same way. You can also pass `remove_job_ids` explicitly.\n\nNew children omit `id`. Existing children include their real `id`.\n\nStarted trees cannot be structurally modified.\n\n**200** returns the root tree."
                  },
                  "response": []
                },
                {
                  "name": "Bulk Update Jobs",
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{company_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "PUT",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      },
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"jobs\": [ // required\n    {\n      \"id\": {{driver_job_id}}, // required\n      \"status\": \"planned\", // optional: todo or planned\n      \"scheduled_date\": \"{{from_date}}\", // optional\n      \"driver_id\": {{driver_id}}, // optional\n      \"truck_id\": {{truck_id}}, // optional\n      \"asset_id\": {{asset_id}}, // optional\n      \"asset_specification_id\": {{asset_specification_id}}, // optional\n      \"execution_sequence\": 1, // optional\n      \"children\": [ // optional\n        {\n          \"job_type\": \"pickup\", // optional\n          \"job_category\": \"bridge\", // optional\n          \"label\": \"Pickup\", // optional\n          \"execution_sequence\": 1, // optional\n          \"transit_duration_mins\": 1, // optional\n          \"from_location\": { // optional\n            \"name\": \"Driver Lot\", // optional\n            \"address\": \"100 Depot Rd, Austin, TX\", // optional\n            \"lat\": 30.2301, // optional\n            \"lng\": -97.7012 // optional\n          },\n          \"to_location\": { // optional\n            \"name\": \"Lot Alpha\", // optional\n            \"address\": \"10 River St, Austin, TX\", // optional\n            \"lat\": 30.2501, // optional\n            \"lng\": -97.7204 // optional\n          },\n          \"children\": [ // optional\n            {\n              \"job_type\": \"empty_inspect_and_attach\", // optional\n              \"job_category\": \"static\", // optional\n              \"label\": \"Empty Inspect and Attach\", // optional\n              \"execution_sequence\": 1, // optional\n              \"children\": [] // optional\n            },\n            {\n              \"job_type\": \"qr_code_scan_asset\", // optional\n              \"job_category\": \"static\", // optional\n              \"label\": \"QR Code Scan Asset\", // optional\n              \"execution_sequence\": 2, // optional\n              \"children\": [] // optional\n            }\n          ]\n        },\n        {\n          \"job_type\": \"delivery\", // optional (bridge, not delivery_job)\n          \"job_category\": \"bridge\", // optional\n          \"label\": \"Delivery\", // optional\n          \"execution_sequence\": 2, // optional\n          \"transit_duration_mins\": 1, // optional\n          \"children\": [ // optional\n            {\n              \"job_type\": \"photo_of_asset\", // optional\n              \"job_category\": \"static\", // optional\n              \"label\": \"Photo of Asset\", // optional\n              \"execution_sequence\": 1, // optional\n              \"children\": [] // optional\n            }\n          ]\n        }\n      ]\n    }\n  ],\n  \"remove_job_ids\": [] // optional\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    },
                    "url": {
                      "raw": "{{base_url}}/api/v1/order/jobs/bulk",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "order",
                        "jobs",
                        "bulk"
                      ]
                    },
                    "description": "`PUT /api/v1/order/jobs/bulk`\n\nAuto-router / dispatcher update of **existing** primaries. Body is `{ jobs: [ ... ] }`. New trees use **Create Job**, not this endpoint.\n\n**Each root required:** `id` of an existing `todo` or `planned` primary (`{{driver_job_id}}`, unquoted).\n**Each root optional:** `status` (`todo` or `planned`), `scheduled_date`, `driver_id`, `truck_id`, `asset_id`, `asset_specification_id`, `execution_sequence`. Omit `status` to leave it unchanged. Setting `planned` applies to that root and descendants still in `todo`/`planned`. Omit `job_type` / `job_category` / `label` on the root unless changing them. **Omit `duration_mins`** â€” parent duration is summed from children. Bridge duration is `transit_duration_mins` plus child minutes. Static minutes come from the catalog when omitted.\n\n**Each child required:** `job_type`, `job_category`. Omit `id` when attaching new steps. Include real `id` only for children that already exist.\n\nOmitted existing child ids are removed automatically when `children` is sent. You can also pass `remove_job_ids: [5004]` explicitly.\n\nStarted trees cannot be updated. **200** returns the updated root trees."
                  },
                  "response": []
                },
                {
                  "name": "Bulk Update Jobs (Delivery + Retrieve)",
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{company_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "PUT",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      },
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"jobs\": [ // required\n    {\n      \"id\": {{driver_job_id}}, // required\n      \"status\": \"planned\", // optional: todo or planned\n      \"scheduled_date\": \"{{from_date}}\", // optional\n      \"driver_id\": {{driver_id}}, // optional\n      \"truck_id\": {{truck_id}}, // optional\n      \"asset_id\": {{asset_id}}, // optional\n      \"asset_specification_id\": {{asset_specification_id}}, // optional\n      \"execution_sequence\": 1, // optional\n      \"children\": [ // optional\n        {\n          \"job_type\": \"pickup\", // optional\n          \"job_category\": \"bridge\", // optional\n          \"label\": \"Pickup\", // optional\n          \"execution_sequence\": 1, // optional\n          \"transit_duration_mins\": 1, // optional\n          \"children\": [ // optional\n            {\n              \"job_type\": \"empty_inspect_and_attach\", // optional\n              \"job_category\": \"static\", // optional\n              \"execution_sequence\": 1, // optional\n              \"children\": [] // optional\n            }\n          ]\n        },\n        {\n          \"job_type\": \"delivery\", // optional (bridge, not delivery_job)\n          \"job_category\": \"bridge\", // optional\n          \"label\": \"Delivery\", // optional\n          \"execution_sequence\": 2, // optional\n          \"transit_duration_mins\": 1, // optional\n          \"children\": [ // optional\n            {\n              \"job_type\": \"photo_of_asset\", // optional\n              \"job_category\": \"static\", // optional\n              \"execution_sequence\": 1, // optional\n              \"children\": [] // optional\n            }\n          ]\n        }\n      ]\n    },\n    {\n      \"id\": {{retrieve_job_id}}, // required\n      \"status\": \"planned\", // optional: todo or planned\n      \"scheduled_date\": \"{{to_date}}\", // optional\n      \"driver_id\": {{driver_id}}, // optional\n      \"truck_id\": {{truck_id}}, // optional\n      \"asset_id\": {{asset_id}}, // optional\n      \"asset_specification_id\": {{asset_specification_id}}, // optional\n      \"execution_sequence\": 2, // optional\n      \"children\": [ // optional\n        {\n          \"job_type\": \"retrieve\", // optional (bridge child)\n          \"job_category\": \"bridge\", // optional\n          \"label\": \"Retrieve\", // optional\n          \"execution_sequence\": 1, // optional\n          \"transit_duration_mins\": 1, // optional\n          \"children\": [ // optional\n            {\n              \"job_type\": \"haul_inspect_and_attach\", // optional\n              \"job_category\": \"static\", // optional\n              \"execution_sequence\": 1, // optional\n              \"children\": [] // optional\n            }\n          ]\n        },\n        {\n          \"job_type\": \"haul\", // optional\n          \"job_category\": \"bridge\", // optional\n          \"label\": \"Haul\", // optional\n          \"execution_sequence\": 2, // optional\n          \"transit_duration_mins\": 1, // optional\n          \"children\": [ // optional\n            {\n              \"job_type\": \"photo_of_ticket_post_haul\", // optional\n              \"job_category\": \"static\", // optional\n              \"execution_sequence\": 1, // optional\n              \"children\": [] // optional\n            }\n          ]\n        }\n      ]\n    }\n  ],\n  \"remove_job_ids\": [] // optional\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    },
                    "url": {
                      "raw": "{{base_url}}/api/v1/order/jobs/bulk",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "order",
                        "jobs",
                        "bulk"
                      ]
                    },
                    "description": "`PUT /api/v1/order/jobs/bulk`\n\nSame endpoint. Two existing primaries in one request. Set `{{driver_job_id}}` to the `delivery_job` id and `{{retrieve_job_id}}` to the `retrieve_job` id from **List Job Trees**.\n\nOptional `status` on each root: `todo` or `planned`. Omit `duration_mins` on both roots."
                  },
                  "response": []
                },
                {
                  "name": "Sync Driver Jobs",
                  "description": "`POST /api/v1/order/jobs/sync` â€” replace one driver's assignable trees for one date. Omitted assignable roots collapse to todo shells (driver cleared). Locked statuses left alone if omitted; targeting them returns 422.",
                  "item": [
                    {
                      "name": "Sync Driver Jobs (Create Trees)",
                      "request": {
                        "auth": {
                          "type": "bearer",
                          "bearer": [
                            {
                              "key": "token",
                              "value": "{{company_token}}",
                              "type": "string"
                            }
                          ]
                        },
                        "method": "POST",
                        "header": [
                          {
                            "key": "Accept",
                            "value": "application/json"
                          },
                          {
                            "key": "Content-Type",
                            "value": "application/json"
                          }
                        ],
                        "body": {
                          "mode": "raw",
                          "raw": "{\n  \"driver_id\": {{driver_id}}, // required\n  \"scheduled_date\": \"{{from_date}}\", // required; Y-m-d\n  \"jobs\": [ // required (may be empty)\n    {\n      \"order_id\": {{order_id}}, // optional\n      \"job_type\": \"delivery_job\", // required (primary root)\n      \"job_category\": \"primary\", // required\n      \"label\": \"Delivery Job\", // required\n      \"execution_sequence\": 1, // required\n      \"truck_id\": {{truck_id}}, // optional\n      \"asset_id\": {{asset_id}}, // optional\n      \"asset_specification_id\": {{asset_specification_id}}, // optional\n      \"children\": [ // optional\n        {\n          \"job_type\": \"pickup\", // required\n          \"job_category\": \"bridge\", // optional (auto-filled from job_type if omitted)\n          \"label\": \"Pickup\", // optional\n          \"execution_sequence\": 1, // required\n          \"transit_duration_mins\": 1, // optional\n          \"from_location\": { // optional\n            \"name\": \"Driver Lot\", // optional\n            \"address\": \"100 Depot Rd, Austin, TX\", // optional\n            \"lat\": 30.2301, // optional\n            \"lng\": -97.7012 // optional\n          },\n          \"to_location\": { // optional\n            \"name\": \"Lot Alpha\", // optional\n            \"address\": \"10 River St, Austin, TX\", // optional\n            \"lat\": 30.2501, // optional\n            \"lng\": -97.7204 // optional\n          },\n          \"children\": [ // optional\n            {\n              \"job_type\": \"empty_inspect_and_attach\", // required\n              \"job_category\": \"static\", // optional\n              \"label\": \"Empty Inspect and Attach\", // optional\n              \"execution_sequence\": 1, // optional\n              \"children\": [] // optional\n            }\n          ]\n        }\n      ]\n    }\n  ]\n}",
                          "options": {
                            "raw": {
                              "language": "json"
                            }
                          }
                        },
                        "url": {
                          "raw": "{{base_url}}/api/v1/order/jobs/sync",
                          "host": [
                            "{{base_url}}"
                          ],
                          "path": [
                            "api",
                            "v1",
                            "order",
                            "jobs",
                            "sync"
                          ]
                        },
                        "description": "`POST /api/v1/order/jobs/sync`\n\nCreate new primary trees for a driver day. Omit `id` on roots and children. Sync forces `planned` on submitted trees (client cannot set `status`).\n\n**Required:** `driver_id`, `scheduled_date`, `jobs`. Each root: `job_type`, `job_category` (`primary`), `label`, `execution_sequence`. Each child: `job_type`, `execution_sequence`.\n\n**200** returns all roots still on that driver/date (planned + any locked roots). Use when the day had no assignable trees or you are adding net-new primaries."
                      },
                      "response": []
                    },
                    {
                      "name": "Sync Driver Jobs (Add Trees)",
                      "request": {
                        "auth": {
                          "type": "bearer",
                          "bearer": [
                            {
                              "key": "token",
                              "value": "{{company_token}}",
                              "type": "string"
                            }
                          ]
                        },
                        "method": "POST",
                        "header": [
                          {
                            "key": "Accept",
                            "value": "application/json"
                          },
                          {
                            "key": "Content-Type",
                            "value": "application/json"
                          }
                        ],
                        "body": {
                          "mode": "raw",
                          "raw": "{\n  \"driver_id\": {{driver_id}}, // required\n  \"scheduled_date\": \"{{from_date}}\", // required; Y-m-d\n  \"jobs\": [ // required â€” full desired day (existing + new)\n    {\n      \"id\": {{driver_job_id}}, // required for existing root\n      \"order_id\": {{order_id}}, // optional\n      \"job_type\": \"delivery_job\", // required\n      \"job_category\": \"primary\", // required\n      \"label\": \"Delivery Job\", // required\n      \"execution_sequence\": 1, // required\n      \"children\": [ // optional\n        {\n          \"job_type\": \"delivery\", // required (bridge, not delivery_job)\n          \"job_category\": \"bridge\", // optional\n          \"label\": \"Delivery\", // optional\n          \"execution_sequence\": 1, // required\n          \"transit_duration_mins\": 1, // optional\n          \"children\": [ // optional\n            {\n              \"job_type\": \"photo_of_asset\", // required\n              \"job_category\": \"static\", // optional\n              \"label\": \"Photo of Asset\", // optional\n              \"execution_sequence\": 1, // optional\n              \"children\": [] // optional\n            }\n          ]\n        }\n      ]\n    },\n    {\n      \"order_id\": {{order_id}}, // optional â€” use a second confirmed order's id in practice\n      \"job_type\": \"delivery_job\", // required (new primary; omit id)\n      \"job_category\": \"primary\", // required\n      \"label\": \"Second Delivery Job\", // required\n      \"execution_sequence\": 2, // required\n      \"children\": [ // optional\n        {\n          \"job_type\": \"pickup\", // required\n          \"job_category\": \"bridge\", // optional\n          \"label\": \"Pickup\", // optional\n          \"execution_sequence\": 1, // required\n          \"transit_duration_mins\": 1, // optional\n          \"children\": [] // optional\n        }\n      ]\n    }\n  ]\n}",
                          "options": {
                            "raw": {
                              "language": "json"
                            }
                          }
                        },
                        "url": {
                          "raw": "{{base_url}}/api/v1/order/jobs/sync",
                          "host": [
                            "{{base_url}}"
                          ],
                          "path": [
                            "api",
                            "v1",
                            "order",
                            "jobs",
                            "sync"
                          ]
                        },
                        "description": "`POST /api/v1/order/jobs/sync`\n\nKeep an existing planned root (`{{driver_job_id}}` from **List Job Trees**) and add a second primary without `id`. Payload is the **full desired day** â€” include every assignable root you want to keep; omitted assignable roots collapse to `todo`.\n\nPrerequisite: bulk-plan or sync the first tree, then run this to add another order's primary on the same date.\n\n**200** returns both planned roots on the driver."
                      },
                      "response": []
                    },
                    {
                      "name": "Sync Driver Jobs (Update Trees)",
                      "request": {
                        "auth": {
                          "type": "bearer",
                          "bearer": [
                            {
                              "key": "token",
                              "value": "{{company_token}}",
                              "type": "string"
                            }
                          ]
                        },
                        "method": "POST",
                        "header": [
                          {
                            "key": "Accept",
                            "value": "application/json"
                          },
                          {
                            "key": "Content-Type",
                            "value": "application/json"
                          }
                        ],
                        "body": {
                          "mode": "raw",
                          "raw": "{\n  \"driver_id\": {{driver_id}}, // required\n  \"scheduled_date\": \"{{from_date}}\", // required; Y-m-d\n  \"jobs\": [ // required\n    {\n      \"id\": {{driver_job_id}}, // required for update\n      \"order_id\": {{order_id}}, // optional\n      \"job_type\": \"delivery_job\", // required\n      \"job_category\": \"primary\", // required\n      \"label\": \"Updated Delivery Label\", // required\n      \"execution_sequence\": 2, // required â€” changed sequence\n      \"children\": [ // optional; authoritative list at this level\n        {\n          \"job_type\": \"pickup\", // required\n          \"job_category\": \"bridge\", // optional\n          \"label\": \"Pickup\", // optional\n          \"execution_sequence\": 1, // required\n          \"transit_duration_mins\": 2, // optional â€” changed transit\n          \"children\": [] // optional\n        },\n        {\n          \"job_type\": \"delivery\", // required (bridge)\n          \"job_category\": \"bridge\", // optional\n          \"label\": \"Delivery\", // optional\n          \"execution_sequence\": 2, // required\n          \"transit_duration_mins\": 1, // optional\n          \"children\": [ // optional\n            {\n              \"job_type\": \"photo_of_asset\", // required\n              \"job_category\": \"static\", // optional\n              \"label\": \"Photo of Asset\", // optional\n              \"execution_sequence\": 1, // optional\n              \"children\": [] // optional\n            }\n          ]\n        }\n      ]\n    }\n  ]\n}",
                          "options": {
                            "raw": {
                              "language": "json"
                            }
                          }
                        },
                        "url": {
                          "raw": "{{base_url}}/api/v1/order/jobs/sync",
                          "host": [
                            "{{base_url}}"
                          ],
                          "path": [
                            "api",
                            "v1",
                            "order",
                            "jobs",
                            "sync"
                          ]
                        },
                        "description": "`POST /api/v1/order/jobs/sync`\n\nUpdate an existing root by `id`. Change `execution_sequence`, `label`, bridge/static `children`, locations, truck/asset, etc. Same create/update semantics as **Bulk Update Jobs** for nested children: omit `id` on new steps, include real `id` on existing children when keeping them.\n\nWhen `children` is sent, it is the authoritative list â€” omitted existing child ids are removed.\n\n**200** returns the updated tree as `planned`."
                      },
                      "response": []
                    },
                    {
                      "name": "Sync Driver Jobs (Omit Root Collapses)",
                      "request": {
                        "auth": {
                          "type": "bearer",
                          "bearer": [
                            {
                              "key": "token",
                              "value": "{{company_token}}",
                              "type": "string"
                            }
                          ]
                        },
                        "method": "POST",
                        "header": [
                          {
                            "key": "Accept",
                            "value": "application/json"
                          },
                          {
                            "key": "Content-Type",
                            "value": "application/json"
                          }
                        ],
                        "body": {
                          "mode": "raw",
                          "raw": "{\n  \"driver_id\": {{driver_id}}, // required\n  \"scheduled_date\": \"{{from_date}}\", // required; Y-m-d\n  \"jobs\": [ // required â€” only roots you want to keep on this driver/day\n    {\n      \"id\": {{driver_job_id}}, // required â€” first planned root kept\n      \"order_id\": {{order_id}}, // optional\n      \"job_type\": \"delivery_job\", // required\n      \"job_category\": \"primary\", // required\n      \"label\": \"Delivery Job\", // required\n      \"execution_sequence\": 1, // required\n      \"children\": [] // optional\n    }\n  ]\n}",
                          "options": {
                            "raw": {
                              "language": "json"
                            }
                          }
                        },
                        "url": {
                          "raw": "{{base_url}}/api/v1/order/jobs/sync",
                          "host": [
                            "{{base_url}}"
                          ],
                          "path": [
                            "api",
                            "v1",
                            "order",
                            "jobs",
                            "sync"
                          ]
                        },
                        "description": "`POST /api/v1/order/jobs/sync`\n\nSend only a **subset** of assignable root ids for the driver/day. Any assignable root on that driver/date **not** included in `jobs` collapses to a `todo` shell (descendants hard-deleted, `driver_id` cleared) â€” same behavior as **Route Collapse Jobs**.\n\nPrerequisite: two `planned` roots on the same driver/date (e.g. bulk-plan `{{driver_job_id}}` and another order's delivery root). Omit the second root id here.\n\n**200** returns only the kept planned root; the omitted root becomes `todo` with no driver."
                      },
                      "response": []
                    },
                    {
                      "name": "Sync Driver Jobs (Empty Jobs Collapses Day)",
                      "request": {
                        "auth": {
                          "type": "bearer",
                          "bearer": [
                            {
                              "key": "token",
                              "value": "{{company_token}}",
                              "type": "string"
                            }
                          ]
                        },
                        "method": "POST",
                        "header": [
                          {
                            "key": "Accept",
                            "value": "application/json"
                          },
                          {
                            "key": "Content-Type",
                            "value": "application/json"
                          }
                        ],
                        "body": {
                          "mode": "raw",
                          "raw": "{\n  \"driver_id\": {{driver_id}}, // required\n  \"scheduled_date\": \"{{from_date}}\", // required; Y-m-d\n  \"jobs\": [] // required â€” collapses all assignable roots for this driver/day\n}",
                          "options": {
                            "raw": {
                              "language": "json"
                            }
                          }
                        },
                        "url": {
                          "raw": "{{base_url}}/api/v1/order/jobs/sync",
                          "host": [
                            "{{base_url}}"
                          ],
                          "path": [
                            "api",
                            "v1",
                            "order",
                            "jobs",
                            "sync"
                          ]
                        },
                        "description": "`POST /api/v1/order/jobs/sync`\n\nEmpty `jobs` collapses **all** assignable (`todo`/`planned`) roots for that driver/date back to unassigned `todo` shells.\n\nPrerequisite: at least one planned root on the driver/day.\n\n**200** returns `data: []`. Locked roots (`in_progress`, `done`, etc.) stay on the driver and appear in the response when still assigned."
                      },
                      "response": []
                    },
                    {
                      "name": "Sync Driver Jobs (Rejects Locked In Progress)",
                      "request": {
                        "auth": {
                          "type": "bearer",
                          "bearer": [
                            {
                              "key": "token",
                              "value": "{{company_token}}",
                              "type": "string"
                            }
                          ]
                        },
                        "method": "POST",
                        "header": [
                          {
                            "key": "Accept",
                            "value": "application/json"
                          },
                          {
                            "key": "Content-Type",
                            "value": "application/json"
                          }
                        ],
                        "body": {
                          "mode": "raw",
                          "raw": "{\n  \"driver_id\": {{driver_id}}, // required\n  \"scheduled_date\": \"{{from_date}}\", // required; Y-m-d\n  \"jobs\": [ // required\n    {\n      \"id\": {{driver_job_id}}, // must be in_progress â€” whole request fails\n      \"order_id\": {{order_id}}, // optional\n      \"job_type\": \"delivery_job\", // required\n      \"job_category\": \"primary\", // required\n      \"label\": \"Should Not Apply\", // required\n      \"execution_sequence\": 1, // required\n      \"children\": [ // optional\n        {\n          \"job_type\": \"delivery\", // required\n          \"job_category\": \"bridge\", // optional\n          \"label\": \"Delivery\", // optional\n          \"execution_sequence\": 1, // required\n          \"children\": [] // optional\n        }\n      ]\n    }\n  ]\n}",
                          "options": {
                            "raw": {
                              "language": "json"
                            }
                          }
                        },
                        "url": {
                          "raw": "{{base_url}}/api/v1/order/jobs/sync",
                          "host": [
                            "{{base_url}}"
                          ],
                          "path": [
                            "api",
                            "v1",
                            "order",
                            "jobs",
                            "sync"
                          ]
                        },
                        "description": "`POST /api/v1/order/jobs/sync`\n\nTargeting a locked root (`in_progress`, `done`, `cancelled`, `aborted`, `transferred`) fails the **entire** request with **422** â€” no partial writes.\n\nPrerequisite: set `{{driver_job_id}}` to a root that is already `in_progress` (driver started the job).\n\nExpect `success: false` and the tree unchanged."
                      },
                      "response": []
                    },
                    {
                      "name": "Sync Driver Jobs (Locked Omitted Left Alone)",
                      "request": {
                        "auth": {
                          "type": "bearer",
                          "bearer": [
                            {
                              "key": "token",
                              "value": "{{company_token}}",
                              "type": "string"
                            }
                          ]
                        },
                        "method": "POST",
                        "header": [
                          {
                            "key": "Accept",
                            "value": "application/json"
                          },
                          {
                            "key": "Content-Type",
                            "value": "application/json"
                          }
                        ],
                        "body": {
                          "mode": "raw",
                          "raw": "{\n  \"driver_id\": {{driver_id}}, // required\n  \"scheduled_date\": \"{{from_date}}\", // required; Y-m-d\n  \"jobs\": [ // required â€” only the planned root; omit done/cancelled ids\n    {\n      \"id\": {{driver_job_id}}, // planned root â€” updated\n      \"order_id\": {{order_id}}, // optional\n      \"job_type\": \"delivery_job\", // required\n      \"job_category\": \"primary\", // required\n      \"label\": \"Kept Planned Root\", // required\n      \"execution_sequence\": 1, // required\n      \"children\": [] // optional\n    }\n  ]\n}",
                          "options": {
                            "raw": {
                              "language": "json"
                            }
                          }
                        },
                        "url": {
                          "raw": "{{base_url}}/api/v1/order/jobs/sync",
                          "host": [
                            "{{base_url}}"
                          ],
                          "path": [
                            "api",
                            "v1",
                            "order",
                            "jobs",
                            "sync"
                          ]
                        },
                        "description": "`POST /api/v1/order/jobs/sync`\n\nLocked roots (`done`, `cancelled`, etc.) that are **omitted** from the payload are left untouched â€” they stay on the driver with their status.\n\nPrerequisite: same driver/date has one `planned` root (`{{driver_job_id}}`) and one `done` root (another order's delivery â€” omit its id from `jobs`).\n\n**200** returns both roots; only the planned root is updated. The done root is unchanged."
                      },
                      "response": []
                    }
                  ]
                },
                {
                  "name": "Route Collapse Jobs",
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{company_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "PUT",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      },
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"job_ids\": [ // required\n    {{driver_job_id}}, // parent root id\n    {{retrieve_job_id}} // optional second parent\n  ]\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    },
                    "url": {
                      "raw": "{{base_url}}/api/v1/order/jobs/route-collapse",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "order",
                        "jobs",
                        "route-collapse"
                      ]
                    },
                    "description": "`PUT /api/v1/order/jobs/route-collapse`\n\nCollapse one or more **parent** job trees back to `todo` shells so the company can auto-route again.\n\n**Body:** `{ \"job_ids\": [5001, 5002] }` â€” each id must be a root/parent job for this company.\n\n**Behavior:** hard-deletes all descendants, clears driver/truck/asset assignment and routing metadata (`from_location`, `to_location`, `eta_source`, planned times, summed durations), and sets the parent status to `todo`. The parent keeps its order link, job type, label, and scheduled date so it looks like a fresh todo shell again.\n\n**Guards:** only `todo` or `planned` parents; started trees (`in_progress` / `done`) are rejected. Child ids return **422**.\n\n**200** returns the collapsed root trees (empty `children`). Re-run **Bulk Update Jobs** afterward to auto-route again."
                  },
                  "response": []
                },
                {
                  "name": "Cancel Job",
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{company_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "DELETE",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{base_url}}/api/v1/order/jobs/{{driver_job_id}}",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "order",
                        "jobs",
                        "{{driver_job_id}}"
                      ]
                    },
                    "description": "`DELETE /api/v1/order/jobs/{driverJob}`\n\nNo body. Cancels that job and all descendants.\n\nOnly `todo` or `planned` can be cancelled. `in_progress` / `done` return 422.\n\n**200** returns the tree with `status: cancelled`."
                  },
                  "response": []
                },
                {
                  "name": "Abort Job",
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{company_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "POST",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      },
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"issue_id\": {{job_issue_id}}\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    },
                    "url": {
                      "raw": "{{base_url}}/api/v1/order/jobs/{{driver_job_id}}/abort",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "order",
                        "jobs",
                        "{{driver_job_id}}",
                        "abort"
                      ]
                    },
                    "description": "`POST /api/v1/order/jobs/{driverJob}/abort`\n\nAbort an `in_progress` job because of its open blocking issue. Set `{{job_issue_id}}` to an issue that belongs to the job in `{{driver_job_id}}`.\n\nThe issue must be open and blocking. Delay (`non_blocking`) issues, issues from another job, and non-`in_progress` jobs return 422. The issue remains open.\n\nThe job, unfinished ancestors, and unfinished descendants become `aborted`; jobs already `done` stay `done`.\n\n**200** returns the root job tree."
                  },
                  "response": []
                },
                {
                  "name": "Job Issues",
                  "item": [
                    {
                      "name": "List Job Issues",
                      "request": {
                        "auth": {
                          "type": "bearer",
                          "bearer": [
                            {
                              "key": "token",
                              "value": "{{company_token}}",
                              "type": "string"
                            }
                          ]
                        },
                        "method": "GET",
                        "header": [
                          {
                            "key": "Accept",
                            "value": "application/json"
                          }
                        ],
                        "url": {
                          "raw": "{{base_url}}/api/v1/order/jobs/issues",
                          "host": [
                            "{{base_url}}"
                          ],
                          "path": [
                            "api",
                            "v1",
                            "order",
                            "jobs",
                            "issues"
                          ],
                          "query": [
                            {
                              "key": "driver_job_id",
                              "value": "{{driver_job_id}}",
                              "disabled": true
                            },
                            {
                              "key": "status",
                              "value": "open",
                              "description": "JobIssueStatusEnum: open | acknowledged | resolved | rejected",
                              "disabled": true
                            }
                          ]
                        },
                        "description": "`GET /api/v1/order/jobs/issues`\n\nEach issue includes a nested `job`: `id`, `job_number`, `order_id`, `driver_id`, `parent_job_id`, `job_category`, `job_type`, `label`, `status`, `scheduled_date`, `execution_sequence`. Issue fields include `impact`, `subject_type`, `subject_id`, and `delay_mins`: blocking issues identify their subject, while non-blocking issues carry the delay. Resolve also returns `job`. Driver report and issues nested on job detail omit it.\n\nOptional query: `driver_job_id`, `status` (`JobIssueStatusEnum`: `open` | `acknowledged` | `resolved` | `rejected`). Omit `status` to list every issue."
                      },
                      "response": []
                    },
                    {
                      "name": "Resolve Job Issue",
                      "request": {
                        "auth": {
                          "type": "bearer",
                          "bearer": [
                            {
                              "key": "token",
                              "value": "{{company_token}}",
                              "type": "string"
                            }
                          ]
                        },
                        "method": "PATCH",
                        "header": [
                          {
                            "key": "Accept",
                            "value": "application/json"
                          },
                          {
                            "key": "Content-Type",
                            "value": "application/json"
                          }
                        ],
                        "body": {
                          "mode": "raw",
                          "raw": "{\n  \"status\": \"resolved\", // required: acknowledged | resolved | rejected\n  \"resolution_note\": \"Cleared with the customer.\" // optional\n}",
                          "options": {
                            "raw": {
                              "language": "json"
                            }
                          }
                        },
                        "url": {
                          "raw": "{{base_url}}/api/v1/order/jobs/issues/{{job_issue_id}}",
                          "host": [
                            "{{base_url}}"
                          ],
                          "path": [
                            "api",
                            "v1",
                            "order",
                            "jobs",
                            "issues",
                            "{{job_issue_id}}"
                          ]
                        },
                        "description": "`PATCH /api/v1/order/jobs/issues/{issue}`\n\n**Required:** `status` (`JobIssueStatusEnum`, company-settable): `acknowledged` | `resolved` | `rejected`.\n**Optional:** `resolution_note`.\n\n`open` is the driver-report default only. Sending `open` here returns **422**. The response preserves `impact`, `subject_type`, `subject_id`, and `delay_mins`; blocking issues identify their subject, while non-blocking issues carry the delay.\n\n**200** includes the same nested `job` object as list."
                      },
                      "response": []
                    }
                  ]
                }
              ],
              "description": "Company dispatcher job trees. Auth: `Authorization: Bearer {{company_token}}`.\n\n**Typical flow**\n1. Order confirm creates two `todo` primaries (`delivery_job`, `retrieve_job`) with `source=order`. Copy those ids into `{{driver_job_id}}` and `{{retrieve_job_id}}`.\n2. Attach the auto-router plan with **Update Job** (one tree) or **Bulk Update Jobs** (one or both primaries). Send `status: planned` so the driver can see the tree. New children omit `id`.\n3. Replace a driver's whole day atomically: **Sync Driver Jobs** (`POST /order/jobs/sync`) â€” create/update by id, collapse omitted assignable roots to `todo`. Locked roots omitted are left alone; targeting locked roots returns 422.\n4. Extra manual trees: **Create Job** / **Create Retrieve Job** â€” any job type as a root (primary, bridge, or static). One extra child: **Create Child Job** (`delivery_job` / `retrieve_job` / `park_the_truck` cannot be children).\n5. Edit trees: **Update Job** (single root or child id in URL) or **Bulk Update Jobs**. When `children` is sent, omitted existing child ids are removed.\n6. Collapse a routed tree back to `todo`: **Route Collapse Jobs**.\n7. Cancel a `todo` or `planned` tree: **Cancel Job**.\n\n**Removed â€” do not call**\n`POST /order/jobs/bulk`, `POST /order/jobs/bulk-plan`, `PATCH /order/jobs/reorder`.\n\n**job_type / job_category (must match)**\n- primary: `delivery_job`, `retrieve_job` (order confirm; company may also create these as custom roots)\n- bridge: `delivery`, `retrieve`, `pickup`, `park_the_truck`, `temp_drop`, `park`, `haul`, `repack`, `stage` (roots or children)\n- static: `clock_in`, `clock_out`, `pre_transit_truck_inspection`, `post_transit_truck_inspection`, `empty_inspect_and_attach`, `haul_inspect_and_attach`, `empty_detach_and_inspect`, `haul_unload_and_inspect`, `driver_break`, `driver_safety_check`, `photo_of_ticket_post_haul`, `photo_of_asset`, `photo_of_truck`, `qr_code_scan_asset`, `qr_code_scan_truck` (roots or children; no nested children)\n\nDo not send retired names (`deliver`, `deliver_job`, `pickup_job`). Static catalog minutes: clock in/out 10, inspections 15, empty_inspect_and_attach 15, haul_inspect_and_attach 15, empty_detach_and_inspect 10, haul_unload_and_inspect 10, break/safety 30, photo/QR 5.\n\nKeep Postman numbers unquoted: `{{driver_id}}`, `{{truck_id}}`, `{{asset_id}}`, `{{asset_specification_id}}`, `{{order_id}}`, `{{driver_job_id}}`. Do not wrap those variables in JSON quotes. Never send example child ids `101` / `201`.\n\n**Response shape** (`DriverJobTreeResource`): every node has `id`, `uuid`, `parent_job_id`, `order_id`, `job_number`, `job_category`, `job_type`, `label`, `source`, `status`, `execution_sequence`, `scheduled_date`, `duration_mins`, `transit_duration_mins`, `static_duration_mins`, `distance_km`, `from_location`, `to_location`, `is_required`, `notes`, `progress` `{total,done,percent}`, `children_count`, `children`. List omits `driver` / `truck` / `asset` / `asset_specification` / `evidence` / `issues`. Job Details and mutating endpoints include those on the root when present."
            },
            {
              "name": "List Orders",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{company_token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/orders?sort={{sort}}&limit={{limit}}&page={{page}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "orders"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "nullable, string â€” uuid, customer, asset number, spec name, waste type, driver",
                      "disabled": true
                    },
                    {
                      "key": "status",
                      "value": "{{status}}",
                      "description": "nullable â€” single status, or special: ongoing / unconfirmed",
                      "disabled": true
                    },
                    {
                      "key": "statuses",
                      "value": "{{statuses}}",
                      "description": "nullable â€” comma-separated statuses (takes precedence over status)",
                      "disabled": true
                    },
                    {
                      "key": "order_id",
                      "value": "{{order_id}}",
                      "description": "nullable, integer",
                      "disabled": true
                    },
                    {
                      "key": "order_uuid",
                      "value": "{{order_uuid}}",
                      "description": "nullable, string â€” partial uuid match",
                      "disabled": true
                    },
                    {
                      "key": "from_date",
                      "value": "{{from_date}}",
                      "description": "nullable, date Y-m-d â€” orders.from_date >=",
                      "disabled": true
                    },
                    {
                      "key": "to_date",
                      "value": "{{to_date}}",
                      "description": "nullable, date Y-m-d â€” orders.from_date <=",
                      "disabled": true
                    },
                    {
                      "key": "customer_id",
                      "value": "{{customer_id}}",
                      "description": "nullable, integer",
                      "disabled": true
                    },
                    {
                      "key": "asset_id",
                      "value": "{{asset_id}}",
                      "description": "nullable, integer",
                      "disabled": true
                    },
                    {
                      "key": "asset_specification_id",
                      "value": "{{asset_specification_id}}",
                      "description": "nullable, integer",
                      "disabled": true
                    },
                    {
                      "key": "driver_id",
                      "value": "{{driver_id}}",
                      "description": "nullable, integer â€” via jobs",
                      "disabled": true
                    },
                    {
                      "key": "promotion_id",
                      "value": "{{promotion_id}}",
                      "description": "nullable, integer",
                      "disabled": true
                    },
                    {
                      "key": "type",
                      "value": "{{type}}",
                      "description": "nullable, regular|swapped",
                      "disabled": true
                    },
                    {
                      "key": "order_type",
                      "value": "{{order_type}}",
                      "description": "nullable, alias of type",
                      "disabled": true
                    },
                    {
                      "key": "does_not_have_jobs",
                      "value": "{{does_not_have_jobs}}",
                      "description": "nullable, boolean",
                      "disabled": true
                    },
                    {
                      "key": "has_jobs",
                      "value": "{{has_jobs}}",
                      "description": "nullable, boolean",
                      "disabled": true
                    },
                    {
                      "key": "has_order_change_requests",
                      "value": "{{has_order_change_requests}}",
                      "description": "nullable, boolean",
                      "disabled": true
                    },
                    {
                      "key": "has_date_change_requests",
                      "value": "{{has_date_change_requests}}",
                      "description": "nullable, boolean â€” deprecated alias of has_order_change_requests",
                      "disabled": true
                    },
                    {
                      "key": "reference_order_id",
                      "value": "{{reference_order_id}}",
                      "description": "nullable, integer",
                      "disabled": true
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, asc|desc (default asc)"
                    },
                    {
                      "key": "sort_by",
                      "value": "{{sort_by}}",
                      "description": "nullable, id|uuid|from_date|to_date|created_at|updated_at|status|grand_total",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, integer"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable â€” true/false",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "{{page}}",
                      "description": "page number"
                    }
                  ]
                },
                "description": "`GET /api/v1/orders`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\OrderController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Service:** `OrderService::listFilteredOrders` / `applyOrderListFilters`\n\nResponse items are OrderResource (list shape). All filters are optional query params. Leave filter params disabled until needed (empty env values would otherwise over-filter).\n\n| Query Param | Notes |\n|---|---|\n| search | uuid, customer, asset number, spec name, waste type, driver |\n| status | single status, or special: `ongoing`, `unconfirmed` |\n| statuses | comma-separated statuses (takes precedence over status) |\n| order_id / order_uuid | exact id / partial uuid |\n| from_date / to_date | filter on orders.from_date |\n| customer_id / asset_id / asset_specification_id / driver_id / promotion_id | relation filters |\n| type / order_type | `regular` \\| `swapped` |\n| does_not_have_jobs / has_jobs | boolean |\n| has_order_change_requests | boolean (alias: has_date_change_requests) |\n"
              },
              "response": []
            },
            {
              "name": "Get Order",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/order/{{order_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "order",
                    "{{order_id}}"
                  ]
                },
                "description": "`GET /api/v1/order/{order}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\OrderController@show`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n\nLight order detail. Includes billing when line items are loaded. Does **not** include `pricing_snapshot`, status history, or transactions. Use `GET /order/{order}/full` for snapshots.\n"
              },
              "response": []
            },
            {
              "name": "Get Order Full Detail",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/order/{{order_id}}/full",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "order",
                    "{{order_id}}",
                    "full"
                  ]
                },
                "description": "`GET /api/v1/order/{order}/full`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\OrderController@showFull`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n\nFull order detail for edit/view: billing, `pricing_snapshot`, `payment_term` / `order_payment_term`, promotion, delivery address, etc. Does **not** include transactions or status history.\n"
              },
              "response": []
            },
            {
              "name": "Get Order Status History",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/order/{{order_id}}/status-history",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "order",
                    "{{order_id}}",
                    "status-history"
                  ]
                },
                "description": "`GET /api/v1/order/{order}/status-history`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\OrderController@statusHistory`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Resource:** `OrderStatusHistoryResource`\n\nReturns status transitions for the order (`from_status`, `to_status`, `reason`, `changed_by`, `created_at`), ordered by id ascending.\n"
              },
              "response": []
            },
            {
              "name": "Approve",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PATCH",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"reprice\": false, // optional\n    \"discount\": 20, // required when discount_type is sent\n    \"discount_type\": \"flat\" // required when discount is sent\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/approve/order/{{order_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "approve",
                    "order",
                    "{{order_id}}"
                  ]
                },
                "description": "`PATCH /api/v1/approve/order/{order}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\OrderController@approveOrder`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user, check.company.subscription`\n\nAssigns asset and advances order (awaiting_payment or approved). Optional reprice/discount body per controller validation."
              },
              "response": []
            },
            {
              "name": "Reject",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PATCH",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"reason\": \"No capacity this week\" // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/reject/order/{{order_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "reject",
                    "order",
                    "{{order_id}}"
                  ]
                },
                "description": "`PATCH /api/v1/reject/order/{orderId}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\OrderController@reject` â†’ `OrderService::rejectPendingOrder`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** inline Validator::make() (no dedicated FormRequest).\n\nCompany reject is **pending-only**. For approved / awaiting_payment / confirmed (pre-dispatch) use **Cancel**. Success response: `data` is `null` (message only).\n\n| Field | Rules |\n|---|---|\n| reason | nullable, string, max:1000 |\n"
              },
              "response": []
            },
            {
              "name": "Cancel",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PATCH",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"reason\": \"No capacity this week\" // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/cancel/order/{{order_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "cancel",
                    "order",
                    "{{order_id}}"
                  ]
                },
                "description": "`PATCH /api/v1/cancel/order/{orderId}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\OrderController@cancel` â†’ `OrderService::cancelCompanyOrder`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Order\\CancelOrderRequest::rules()`\n\nCompany may cancel anytime **before dispatch** (pending, approved, awaiting_payment, confirmed, etc.). Dispatched / delivered / pickup_dispatched / picked_up / completed return **422**. Cancels assignable jobs, refunds `total_paid` to customer wallet when paid, dispatches `CancelledEvent`. No 24-hour start-date restriction (unlike customer cancel).\n\n| Field | Rules |\n|---|---|\n| reason | nullable, string, max:1000 |\n"
              },
              "response": []
            },
            {
              "name": "Update Order",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"asset_specification_id\": 1, // required\n  \"from_date\": \"2026-08-25\", // required\n  \"to_date\": \"2026-08-30\", // optional\n  \"waste_type_id\": 1, // optional\n  \"promotion_id\": null, // optional\n  \"note\": \"Updated delivery instructions\", // optional\n  \"location_type\": \"site\", // optional\n  \"business_name\": null, // required when location_type is business\n  \"address_id\": null, // optional\n  \"delivery_address\": { // optional\n    \"address_line_1\": \"123 Main St\", // optional\n    \"city\": \"Austin\", // optional\n    \"state\": \"TX\", // optional\n    \"postal_code\": \"78701\", // optional\n    \"country\": \"US\", // optional\n    \"latitude\": 30.2672, // optional\n    \"longitude\": -97.7431 // optional\n  },\n  \"line_items\": [ // optional\n    {\n      \"type\": \"manual_adjustment\", // required when line_items.*.delete is omitted\n      \"direction\": \"subtract\", // required when line_items.*.delete is omitted\n      \"amount\": 25, // required when line_items.*.delete is omitted\n      \"description\": \"Courtesy discount\" // optional\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/update/order/{{order_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "update",
                    "order",
                    "{{order_id}}"
                  ]
                },
                "description": "`PUT /api/v1/update/order/{order}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\OrderController@updateOrder`\n**Form Request:** `App\\Http\\Requests\\CompanyRequests\\Order\\UpdateOrderRequest`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user, check.company.subscription`\n\n**Authorization:** company JWT must own the order. Pending orders only.\n\n**Editable order fields:** `asset_specification_id`, `from_date`, `to_date`, `waste_type_id`, `promotion_id`, `note`, `location_type`, `business_name`, `address_id`, `delivery_address`.\n\n**Editable line items (`line_items`, optional):** only manually attachable types â€” `manual_adjustment`, `weight_charge`, `overdue_charge`. Use `id` to update, `id` + `delete: true` to remove. System rows (base rent, tax, promotion line, payments, etc.) are recalculated automatically and cannot be edited directly.\n\n**Not accepted:** `order_type`, `reference_order_id`, `discount`, status, payment totals, or any system line item ids.\n"
              },
              "response": []
            },
            {
              "name": "Show Available Assets For Order",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/orders/{{order_id}}/assets-with-availability?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "orders",
                    "{{order_id}}",
                    "assets-with-availability"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable|string|in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/orders/{orderId}/assets-with-availability`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\OrderController@showAssetsWithAvailability`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\nReturns the company assets matching the order's `asset_specification_id` that are free for the order date range. Fails with 422 when the order already has an `asset_id`.\n\n| Query Param | Rules |\n|---|---|\n| search | nullable, string |\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Assign Driver",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"driver_id\": {{driver_id}}, // required\n    \"role\": \"retrieve\" // required\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/assign/{{order_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "assign",
                    "{{order_id}}"
                  ]
                },
                "description": "`POST /api/v1/driver/assign/{order}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\OrderController@assignDriver`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user, check.company.subscription`\n**Validation:** inline Validator::make()/$request->validate() (no dedicated FormRequest — best-effort reflection).\n\n| Field | Rules |\n|---|---|\n| driver_id | required, exists:drivers,id |\n| role | required, in:delivery,retrieve |"
              },
              "response": []
            },
            {
              "name": "Reassign Driver",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"driver_id\": {{driver_id}}, // required\n    \"role\": \"retrieve\" // required\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/reassign/{{order_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "reassign",
                    "{{order_id}}"
                  ]
                },
                "description": "`POST /api/v1/driver/reassign/{order}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\OrderController@reassignDriver`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user, check.company.subscription`\n**Validation:** inline Validator::make()/$request->validate() (no dedicated FormRequest — best-effort reflection).\n\n| Field | Rules |\n|---|---|\n| driver_id | required, exists:drivers,id |\n| role | required, in:delivery,retrieve |"
              },
              "response": []
            },
            {
              "name": "Multi Reassign Driver",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"assignments\": [ // required\n        {\n            \"driver_id\": {{driver_id}}, // required\n            \"job_id\": {{job_id}} // required\n        }\n    ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/multi/reassign",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "multi",
                    "reassign"
                  ]
                },
                "description": "`POST /api/v1/multi/reassign`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\OrderController@multiReassignDriver`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user, check.company.subscription`\n**Validation:** inline Validator::make()/$request->validate() (no dedicated FormRequest — best-effort reflection).\n\n| Field | Rules |\n|---|---|\n| assignments | required, array, min:1 |"
              },
              "response": []
            },
            {
              "name": "List Jobs",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/jobs?sort={{sort}}&sort_by=scheduled_date&limit={{limit}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "jobs"
                  ],
                  "query": [
                    {
                      "key": "date",
                      "value": "{{from_date}}",
                      "description": "optional; nullable, Y-m-d; exact job date. **Defaults to today** when omitted (unless from_date or to_date is sent).",
                      "disabled": true
                    },
                    {
                      "key": "from_date",
                      "value": "{{from_date}}",
                      "description": "optional; nullable, Y-m-d; range start (with to_date). Skips default today filter when set.",
                      "disabled": true
                    },
                    {
                      "key": "to_date",
                      "value": "{{to_date}}",
                      "description": "optional; nullable, Y-m-d; range end, after_or_equal:from_date",
                      "disabled": true
                    },
                    {
                      "key": "order_id",
                      "value": "{{order_id}}",
                      "description": "optional; nullable, integer; company order id",
                      "disabled": true
                    },
                    {
                      "key": "driver_id",
                      "value": "{{driver_id}}",
                      "description": "optional; nullable, integer; company driver id",
                      "disabled": true
                    },
                    {
                      "key": "role",
                      "value": "delivery",
                      "description": "optional; nullable; delivery | retrieve",
                      "disabled": true
                    },
                    {
                      "key": "job_type",
                      "value": "delivery_job",
                      "description": "optional; nullable; any JobTypeEnum (roots are delivery_job | retrieve_job)",
                      "disabled": true
                    },
                    {
                      "key": "status",
                      "value": "todo",
                      "description": "optional; nullable; single status: todo | planned | in_progress | done | cancelled | transferred | aborted",
                      "disabled": true
                    },
                    {
                      "key": "statuses[]",
                      "value": "todo",
                      "description": "optional; nullable, array; multiple statuses (repeat key or CSV per API client)",
                      "disabled": true
                    },
                    {
                      "key": "in_progress",
                      "value": "true",
                      "description": "optional; nullable, boolean; in-progress jobs only (replaces legacy get-active-jobs)",
                      "disabled": true
                    },
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "optional; nullable, string max 255; order uuid, driver name, customer name",
                      "disabled": true
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "optional; nullable; asc | desc (default desc)"
                    },
                    {
                      "key": "sort_by",
                      "value": "scheduled_date",
                      "description": "optional; nullable; id | scheduled_date | assigned_at | started_at | done_at (default id)"
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "optional; nullable, integer 1-100"
                    },
                    {
                      "key": "pagination",
                      "value": "true",
                      "description": "optional; nullable; set false to return unpaginated collection",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number when paginated"
                    }
                  ]
                },
                "description": "`GET /api/v1/jobs` â€” company list of **root jobs** (flat). Use `GET /api/v1/order/jobs` when you need recursive trees.\n\n**Controller:** `DriverJobController@index`\n**Service:** `DriverJobService`\n**Resource:** `DriverJobResource`\n**Form Request:** `IndexDriverJobRequest`\n**Middleware:** `jwt.verify`, `checkType:company`, `ensure.company.user`\n\nEach job includes `company_id`, `job_category`, `job_type`, `label`, `source`, `execution_sequence`, `scheduled_date`, `open_issue_impact` (`blocking`, `non_blocking`, or `none`), and `open_issue` (the winning open issue summary or `null`). `role` and `date` in the response are derived from `job_type` and `scheduled_date`.\n\n**Date filter (default):** If `date`, `from_date`, and `to_date` are all omitted â†’ API filters to **today's scheduled_date** automatically.\n\n| Query Param | Notes |\n|---|---|\n| date | Exact scheduled_date Y-m-d; default = today |\n| from_date / to_date | Date range; either skips today default |\n| order_id | Company order id |\n| driver_id | Company driver id |\n| role | delivery \\| retrieve (maps to primary job_type) |\n| job_type | Any JobTypeEnum (roots are deliver / retrieve) |\n| status | Single job status: todo \\| planned \\| in_progress \\| done \\| cancelled \\| transferred \\| aborted |\n| statuses[] | Multiple statuses |\n| in_progress | true = active jobs only |\n| search | Order uuid, driver/customer name |\n| sort | asc \\| desc |\n| sort_by | id, scheduled_date, assigned_at, started_at, done_at, execution_sequence |\n| limit | 1-100 |\n| pagination | false = unpaginated |\n| page | Page when paginated |"
              },
              "response": []
            },
            {
              "name": "Show Job",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/jobs/{{job_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "jobs",
                    "{{job_id}}"
                  ]
                },
                "description": "`GET /api/v1/jobs/{driverJob}`\n\n**Controller:** `DriverJobController@show`\n**Service:** `DriverJobService::findForCompany`\n**Resource:** `DriverJobDetailResource`\n**Middleware:** `jwt.verify`, `checkType:company`, `ensure.company.user`\n\nReturns a single company-scoped driver job (`company_id` plus nested driver, order with delivery address and asset location, and chat). Includes `open_issue_impact` (`blocking`, `non_blocking`, or `none`) and `open_issue` (the winning open issue summary or `null`)."
              },
              "response": []
            },
            {
              "name": "Dispatch Context",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/dispatch/context",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "dispatch",
                    "context"
                  ],
                  "query": [
                    {
                      "key": "date",
                      "value": "{{date}}",
                      "description": "optional; Y-m-d; defaults to today when omitted",
                      "disabled": true
                    }
                  ]
                },
                "description": "`GET /api/v1/dispatch/context`\n\n**Controller:** `DispatchController@context`\n**Service:** `DispatchService`\n**Resources:** `DispatchJobResource`, `DispatchAssetResource`, `DispatchDriverResource` (nested `truck`), `DispatchTruckTypeResource`, `DispatchAssetStyleResource`, `DispatchLotResource`, `DispatchStationResource`\n**Middleware:** `jwt.verify`, `checkType:company`, `ensure.company.user`\n\nOptional query: `date` (Y-m-d). Defaults to today.\n\nDrivers, nested trucks, and assets include auto-generated `uuid`.\n\nThere is **no top-level `trucks` array**. Each driver includes attached `truck` (or null) with `lot` + `current_location`. Each job `order` exposes `delivery_address`. If the order already has `asset_id`, `order.asset` is the assigned asset with `current_location`; otherwise `order.asset` is null.\n\n**Compatibility (`truck_type_asset_style`, enrichment only â€” no filtering):**\n- `truck_types[]` with `compatible_asset_styles` (`[]` = compatible with all styles)\n- `asset_styles[]` with `compatible_truck_types` (`[]` = compatible with all truck types)\n\n| Section | Rules |\n|---|---|\n| jobs | Company jobs for the selected date. Planned primary `retrieve_job` rows with no `asset_id` are omitted |\n| assets | Active + assignable operational status |\n| drivers | Active, posted/off, not on leave, no assigned planned root job that date; nested `truck` |\n| truck_types / asset_styles | Active catalogs + pivot lists |\n| lots | Active + open |\n| stations | Active |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Chat",
          "item": [
            {
              "name": "Send Message",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"content\": \"Content\", // required\n    \"type\": \"Type\" // required\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/company/chats/{{chat_id}}/message",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "company",
                    "chats",
                    "{{chat_id}}",
                    "message"
                  ]
                },
                "description": "`POST /api/v1/company/chats/{chat}/message`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\ChatController@sendMessage`\n**Middleware:** `api, jwt.verify, checkType:company`\n**Validation:** `App\\Http\\Requests\\Chat\\SendMessagesRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| content | required, string |\n| type | required, string |"
              },
              "response": []
            },
            {
              "name": "Get Messages",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/company/chats/{{chat_id}}/messages?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "company",
                    "chats",
                    "{{chat_id}}",
                    "messages"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/company/chats/{chat}/messages`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\ChatController@getMessages`\n**Middleware:** `api, jwt.verify, checkType:company`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| search | nullable, string |\n| limit | nullable, string |\n| sort | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Start Chat",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/company/chats/{{order_id}}/create",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "company",
                    "chats",
                    "{{order_id}}",
                    "create"
                  ]
                },
                "description": "`POST /api/v1/company/chats/{order}/create`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\ChatController@startChat`\n**Middleware:** `api, jwt.verify, checkType:company`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Demerit Point",
          "item": [
            {
              "name": "List Demerit Point",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/demerit/customers?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "demerit",
                    "customers"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/demerit/customers`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\DemeritPointController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable, string |\n| sort | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Get Customer Demerit Details",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/demerit/{{customer_id}}/customer/details",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "demerit",
                    "{{customer_id}}",
                    "customer",
                    "details"
                  ]
                },
                "description": "`GET /api/v1/demerit/{customer}/customer/details`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\DemeritPointController@getCustomerDemeritDetails`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Get Customer Demerit Orders",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/demerit/{{customer_id}}/customer/orders?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "demerit",
                    "{{customer_id}}",
                    "customer",
                    "orders"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable|string|in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/demerit/{customer}/customer/orders`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\DemeritPointController@getCustomerDemeritOrders`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Get Violated Policies",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/demerit/{{order_id}}/violated-policies?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "demerit",
                    "{{order_id}}",
                    "violated-policies"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable|string|in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/demerit/{order}/violated-policies`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\DemeritPointController@getViolatedPolicies`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Finix",
          "item": [
            {
              "name": "Handle Onboarding Cancel",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/onboarding/cancel?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "onboarding",
                    "cancel"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable|string|in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/finix/onboarding/cancel`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\FinixController@handleOnboardingCancel`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Handle Onboarding Cancel",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/onboarding/cancel",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "onboarding",
                    "cancel"
                  ]
                },
                "description": "`POST /api/v1/finix/onboarding/cancel`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\FinixController@handleOnboardingCancel`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Handle Onboarding Cancel",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/onboarding/cancel",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "onboarding",
                    "cancel"
                  ]
                },
                "description": "`PUT /api/v1/finix/onboarding/cancel`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\FinixController@handleOnboardingCancel`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Handle Onboarding Cancel",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PATCH",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/onboarding/cancel",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "onboarding",
                    "cancel"
                  ]
                },
                "description": "`PATCH /api/v1/finix/onboarding/cancel`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\FinixController@handleOnboardingCancel`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Handle Onboarding Cancel",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/onboarding/cancel",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "onboarding",
                    "cancel"
                  ]
                },
                "description": "`DELETE /api/v1/finix/onboarding/cancel`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\FinixController@handleOnboardingCancel`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Handle Onboarding Complete",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/onboarding/complete?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "onboarding",
                    "complete"
                  ],
                  "query": [
                    {
                      "key": "identityId",
                      "value": "{{identityId}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable|string|in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/finix/onboarding/complete`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\FinixController@handleOnboardingComplete`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| identityId | nullable, string |\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Handle Onboarding Complete",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/onboarding/complete",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "onboarding",
                    "complete"
                  ]
                },
                "description": "`POST /api/v1/finix/onboarding/complete`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\FinixController@handleOnboardingComplete`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Handle Onboarding Complete",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/onboarding/complete",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "onboarding",
                    "complete"
                  ]
                },
                "description": "`PUT /api/v1/finix/onboarding/complete`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\FinixController@handleOnboardingComplete`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Handle Onboarding Complete",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PATCH",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/onboarding/complete",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "onboarding",
                    "complete"
                  ]
                },
                "description": "`PATCH /api/v1/finix/onboarding/complete`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\FinixController@handleOnboardingComplete`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Handle Onboarding Complete",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/onboarding/complete",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "onboarding",
                    "complete"
                  ],
                  "query": [
                    {
                      "key": "identityId",
                      "value": "{{identityId}}",
                      "description": "nullable, string",
                      "disabled": true
                    }
                  ]
                },
                "description": "`DELETE /api/v1/finix/onboarding/complete`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\FinixController@handleOnboardingComplete`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| identityId | nullable, string |"
              },
              "response": []
            },
            {
              "name": "Handle Onboarding Fee Details",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/onboarding/fee_details",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "onboarding",
                    "fee_details"
                  ]
                },
                "description": "`GET /api/v1/finix/onboarding/fee_details`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\FinixController@handleOnboardingFeeDetails`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Handle Onboarding Fee Details",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/onboarding/fee_details",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "onboarding",
                    "fee_details"
                  ]
                },
                "description": "`POST /api/v1/finix/onboarding/fee_details`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\FinixController@handleOnboardingFeeDetails`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Handle Onboarding Fee Details",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/onboarding/fee_details",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "onboarding",
                    "fee_details"
                  ]
                },
                "description": "`PUT /api/v1/finix/onboarding/fee_details`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\FinixController@handleOnboardingFeeDetails`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Handle Onboarding Fee Details",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PATCH",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/onboarding/fee_details",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "onboarding",
                    "fee_details"
                  ]
                },
                "description": "`PATCH /api/v1/finix/onboarding/fee_details`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\FinixController@handleOnboardingFeeDetails`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Handle Onboarding Fee Details",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/onboarding/fee_details",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "onboarding",
                    "fee_details"
                  ]
                },
                "description": "`DELETE /api/v1/finix/onboarding/fee_details`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\FinixController@handleOnboardingFeeDetails`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Handle Onboarding Tos",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/onboarding/tos?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "onboarding",
                    "tos"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable|string|in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/finix/onboarding/tos`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\FinixController@handleOnboardingTos`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Handle Onboarding Tos",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/onboarding/tos",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "onboarding",
                    "tos"
                  ]
                },
                "description": "`POST /api/v1/finix/onboarding/tos`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\FinixController@handleOnboardingTos`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Handle Onboarding Tos",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/onboarding/tos",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "onboarding",
                    "tos"
                  ]
                },
                "description": "`PUT /api/v1/finix/onboarding/tos`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\FinixController@handleOnboardingTos`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Handle Onboarding Tos",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PATCH",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/onboarding/tos",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "onboarding",
                    "tos"
                  ]
                },
                "description": "`PATCH /api/v1/finix/onboarding/tos`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\FinixController@handleOnboardingTos`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Handle Onboarding Tos",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/onboarding/tos",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "onboarding",
                    "tos"
                  ]
                },
                "description": "`DELETE /api/v1/finix/onboarding/tos`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\FinixController@handleOnboardingTos`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Subscription",
          "item": [
            {
              "name": "List Subscription",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/plans?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "plans"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable|string|in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/finix/plans`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\SubscriptionController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Start Trial",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"instrument_id\": {{instrument_id}} // required\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/plans/{{plan_id}}/trial",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "plans",
                    "{{plan_id}}",
                    "trial"
                  ]
                },
                "description": "`POST /api/v1/finix/plans/{plan}/trial`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\SubscriptionController@startTrial`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\Subscription\\StartTrialRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| instrument_id | required, string, exists:payment_instruments,finix_id |"
              },
              "response": []
            },
            {
              "name": "Current",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/subscription",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "subscription"
                  ]
                },
                "description": "`GET /api/v1/finix/subscription`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\SubscriptionController@current`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Subscribe",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"instrument_id\": {{instrument_id}} // required\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/subscription/{{plan_id}}/create",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "subscription",
                    "{{plan_id}}",
                    "create"
                  ]
                },
                "description": "`POST /api/v1/finix/subscription/{plan}/create`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\SubscriptionController@subscribe`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** `App\\Http\\Requests\\Subscription\\SubscribeRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| instrument_id | required, string, exists:payment_instruments,finix_id |"
              },
              "response": []
            },
            {
              "name": "Cancel",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/finix/subscription/{{subscription_id}}/cancel",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "finix",
                    "subscription",
                    "{{subscription_id}}",
                    "cancel"
                  ]
                },
                "description": "`DELETE /api/v1/finix/subscription/{subscriptionId}/cancel`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\SubscriptionController@cancel`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Order Transaction",
          "item": [
            {
              "name": "List Order Transaction",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/order/transactions/get?sort={{sort}}&limit={{limit}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "order",
                    "transactions",
                    "get"
                  ],
                  "query": [
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "payment_method",
                      "value": "{{payment_method}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "from_date",
                      "value": "{{from_date}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "to_date",
                      "value": "{{to_date}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/order/transactions/get`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\OrderTransactionController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| sort | nullable, string |\n| payment_method | nullable, string |\n| search | nullable, string |\n| from_date | nullable, string |\n| to_date | nullable, string |\n| limit | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Get Order Transaction",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/order/transactions/{{transaction_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "order",
                    "transactions",
                    "{{transaction_id}}"
                  ]
                },
                "description": "`GET /api/v1/order/transactions/{transaction}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\OrderTransactionController@show`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Order Change Request",
          "item": [
            {
              "name": "Billing",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/order-change-requests/{{order_change_request_id}}/billing",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "order-change-requests",
                    "{{order_change_request_id}}",
                    "billing"
                  ]
                },
                "description": "`GET /api/v1/order-change-requests/{id}/billing`\n\n**Controller:** `Company\\\\OrderChangeRequestController@billing`\n**Service:** `App\\\\Services\\\\OrderChangeRequest\\\\OrderChangeRequestService::previewBillingForCompany`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user, check.company.subscription`\n\nReview billing for a **customer-submitted** request. Response includes `type`, `billing`, `billing_unchanged` (true for early_return), `requested_pickup_date`, order summary."
              },
              "response": []
            },
            {
              "name": "List Order Change Request",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/order-change-requests?status=pending&limit={{limit}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "order-change-requests"
                  ],
                  "query": [
                    {
                      "key": "status",
                      "value": "pending",
                      "description": "pending|approved|rejected|cancelled|all"
                    },
                    {
                      "key": "type",
                      "value": "",
                      "disabled": true
                    },
                    {
                      "key": "customer_id",
                      "value": "{{customer_id}}",
                      "disabled": true
                    },
                    {
                      "key": "order_id",
                      "value": "{{order_id}}",
                      "disabled": true
                    },
                    {
                      "key": "search",
                      "value": "",
                      "disabled": true
                    },
                    {
                      "key": "from_date",
                      "value": "",
                      "disabled": true
                    },
                    {
                      "key": "to_date",
                      "value": "",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}"
                    },
                    {
                      "key": "page",
                      "value": "1"
                    }
                  ]
                },
                "description": "GET /api/v1/order-change-requests\n\n**Controller:** `Company\\\\OrderChangeRequestController@index`\n**Service:** `App\\\\Services\\\\OrderChangeRequest\\\\OrderChangeRequestService::listForCompany`\n**Response:** slim OrderChangeRequestListResource\n\nLists **customer-submitted** requests only (company cannot create requests).\n\n| Query | Notes |\n|---|---|\n| status | default `pending`; use `all` to skip status filter |\n| statuses | CSV or array (overrides status) |\n| type | `extension` \\| `early_return` \\| `reschedule` |\n| order_id, order_uuid, customer_id | scope to order/customer |\n| search | uuid, customer name/email/phone, reason |\n| from_date, to_date | on requested dates |\n| created_from, created_to | request created_at |\n| limit, page, pagination | ListPagination |\n\nFilters may also be nested under `filters[...]`."
              },
              "response": []
            },
            {
              "name": "Wrapper Show",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/order-change-requests/wrapper?limit={{limit}}&sort={{sort}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "order-change-requests",
                    "wrapper"
                  ],
                  "query": [
                    {
                      "key": "filters",
                      "value": "{{filters}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    }
                  ]
                },
                "description": "`GET /api/v1/order-change-requests/wrapper`\n\n**Controller:** `Company\\\\OrderChangeRequestController@wrapper`\n**Service:** `App\\\\Services\\\\OrderChangeRequest\\\\OrderChangeRequestService::summarizeForCompany`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n\nStatus buckets: pending, approved, rejected, cancelled (+ counts). Customer-submitted requests only."
              },
              "response": []
            },
            {
              "name": "Approve Order Change",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PATCH",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/order-change-requests/{{order_change_request_id}}/approve",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "order-change-requests",
                    "{{order_change_request_id}}",
                    "approve"
                  ]
                },
                "description": "PATCH /api/v1/order-change-requests/{id}/approve\n\n**Controller:** `Company\\\\OrderChangeRequestController@approve`\n**Service:** `App\\\\Services\\\\OrderChangeRequest\\\\OrderChangeRequestService::approveForCompany`\n**Middleware:** `check.company.subscription` on approve\n\n**Extension/reschedule:** updates order dates, recalculates billing, credits wallet if overpaid, syncs pending driver jobs.\n\n**Early return:** sets `orders.is_early_return`, moves pending pickup job to `requested_to_date` â€” order dates/billing unchanged.\n\nBlocked when requested pickup date is in the past."
              },
              "response": []
            },
            {
              "name": "Get Order Change Request",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/order-change-requests/{{order_change_request_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "order-change-requests",
                    "{{order_change_request_id}}"
                  ]
                },
                "description": "GET /api/v1/order-change-requests/{id}\n\n**Controller:** `Company\\\\OrderChangeRequestController@show`\n**Service:** `App\\\\Services\\\\OrderChangeRequest\\\\OrderChangeRequestService::findForCompany`\n\nDetail: type, dates, reason, pricing snapshot (`billing_unchanged` for early return), order summary with `is_early_return`, related jobs. Company then GET billing (optional), PATCH approve or reject."
              },
              "response": []
            },
            {
              "name": "Reject Order Change Request",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PATCH",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"reason\": null // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/order-change-requests/{{order_change_request_id}}/reject",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "order-change-requests",
                    "{{order_change_request_id}}",
                    "reject"
                  ]
                },
                "description": "`PATCH /api/v1/order-change-requests/{orderChangeRequest}/reject`\n\n**Controller:** `Company\\\\OrderChangeRequestController@reject`\n**Service:** `App\\\\Services\\\\OrderChangeRequest\\\\OrderChangeRequestService::rejectForCompany`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user, check.company.subscription`\n\n| Field | Rules |\n|---|---|\n| reason | nullable, string, max:1000 |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Policy Violation",
          "item": [
            {
              "name": "Create Policy Violation",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"policy_ids\": [ // required\n        {{policy_id}}\n    ],\n    \"violation_note\": null // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/orders/{{order_id}}/violated-policies",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "orders",
                    "{{order_id}}",
                    "violated-policies"
                  ]
                },
                "description": "`POST /api/v1/orders/{order}/violated-policies`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\PolicyViolationController@store`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user, check.company.subscription`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\PolicyViolation\\StorePolicyViolation::rules()`\n\n| Field | Rules |\n|---|---|\n| policy_ids | required, array |\n| violation_note | nullable, string |"
              },
              "response": []
            },
            {
              "name": "Update Policy Violation",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"policy_ids\": [ // required\n        {{policy_id}}\n    ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/orders/{{order_id}}/violated-policies/update",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "orders",
                    "{{order_id}}",
                    "violated-policies",
                    "update"
                  ]
                },
                "description": "`PUT /api/v1/orders/{order}/violated-policies/update`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\PolicyViolationController@update`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user, check.company.subscription`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\PolicyViolation\\UpdatePolicyViolation::rules()`\n\n| Field | Rules |\n|---|---|\n| policy_ids | required, array |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Payment",
          "item": [
            {
              "name": "List Payment",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/payments?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "payments"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/payments`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\PaymentController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable, string |\n| sort | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Get Payment",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/payments/{{transaction_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "payments",
                    "{{transaction_id}}"
                  ]
                },
                "description": "`GET /api/v1/payments/{transactionId}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\PaymentController@show`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Policy Violation Dispute",
          "item": [
            {
              "name": "Get Policy Violation Dispute",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/policy-violation-disputes/messages/{{policy_violation_dispute_message_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "policy-violation-disputes",
                    "messages",
                    "{{policy_violation_dispute_message_id}}"
                  ]
                },
                "description": "`GET /api/v1/policy-violation-disputes/messages/{policyViolationDisputeMessage}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\PolicyViolationDisputeController@show`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "List Policy Violation Dispute",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/policy-violation-disputes/{{customer_policy_violation_id}}?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "policy-violation-disputes",
                    "{{customer_policy_violation_id}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable|string|in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/policy-violation-disputes/{customerPolicyViolation}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\PolicyViolationDisputeController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Violation Details",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/policy-violations/{{customer_policy_violation_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "policy-violations",
                    "{{customer_policy_violation_id}}"
                  ]
                },
                "description": "`GET /api/v1/policy-violations/{customerPolicyViolation}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\PolicyViolationDisputeController@violationDetails`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Create Policy Violation Dispute",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"message\": \"Message\", // required\n    \"parent_id\": {{parent_id}} // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/policy-violations/{{customer_policy_violation_id}}/dispute-messages",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "policy-violations",
                    "{{customer_policy_violation_id}}",
                    "dispute-messages"
                  ]
                },
                "description": "`POST /api/v1/policy-violations/{customerPolicyViolation}/dispute-messages`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\PolicyViolationDisputeController@store`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user, check.company.subscription`\n**Validation:** inline Validator::make()/$request->validate() (no dedicated FormRequest â€” best-effort reflection).\n\n| Field | Rules |\n|---|---|\n| message | required, string |\n| parent_id | nullable, integer, exists:policy_violation_dispute_messages,id |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Transaction",
          "item": [
            {
              "name": "List Transaction",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/transactions?sort={{sort}}&limit={{limit}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "transactions"
                  ],
                  "query": [
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/transactions`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\TransactionController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| sort | nullable, string |\n| limit | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Get Transaction",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{company_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/transactions/{{transaction_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "transactions",
                    "{{transaction_id}}"
                  ]
                },
                "description": "`GET /api/v1/transactions/{transaction}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\TransactionController@show`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "List Analytics",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{company_token}}",
                  "type": "string"
                }
              ]
            },
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/api/v1/analytics?limit={{limit}}&sort={{sort}}&page=1",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "analytics"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "{{limit}}",
                  "description": "nullable, string"
                },
                {
                  "key": "sort",
                  "value": "{{sort}}",
                  "description": "nullable, string"
                },
                {
                  "key": "pagination",
                  "value": "{{pagination}}",
                  "description": "nullable, string",
                  "disabled": true
                },
                {
                  "key": "page",
                  "value": "1",
                  "description": "Page number for paginated results"
                }
              ]
            },
            "description": "`GET /api/v1/analytics`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\AnalyticsController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable, string |\n| sort | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
          },
          "response": []
        },
        {
          "name": "List Jobs",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{company_token}}",
                  "type": "string"
                }
              ]
            },
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/api/v1/jobs?in_progress=true&sort={{sort}}&sort_by=date&limit={{limit}}&page=1",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "jobs"
              ],
              "query": [
                {
                  "key": "date",
                  "value": "{{from_date}}",
                  "description": "optional; nullable Y-m-d; defaults to **today** when date/from_date/to_date all omitted",
                  "disabled": true
                },
                {
                  "key": "from_date",
                  "value": "{{from_date}}",
                  "description": "optional; nullable Y-m-d range start",
                  "disabled": true
                },
                {
                  "key": "to_date",
                  "value": "{{to_date}}",
                  "description": "optional; nullable Y-m-d range end",
                  "disabled": true
                },
                {
                  "key": "in_progress",
                  "value": "true",
                  "description": "optional; boolean; active/in-progress jobs (legacy get-active-jobs)"
                },
                {
                  "key": "order_id",
                  "value": "{{order_id}}",
                  "description": "optional; nullable company order id",
                  "disabled": true
                },
                {
                  "key": "driver_id",
                  "value": "{{driver_id}}",
                  "description": "optional; nullable company driver id",
                  "disabled": true
                },
                {
                  "key": "role",
                  "value": "retrieve",
                  "description": "optional; delivery | retrieve",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "pending",
                  "description": "optional; single job status",
                  "disabled": true
                },
                {
                  "key": "statuses[]",
                  "value": "in_progress",
                  "description": "optional; multiple statuses",
                  "disabled": true
                },
                {
                  "key": "search",
                  "value": "{{search}}",
                  "description": "optional; order uuid, driver or customer name",
                  "disabled": true
                },
                {
                  "key": "sort",
                  "value": "{{sort}}",
                  "description": "optional; asc | desc"
                },
                {
                  "key": "sort_by",
                  "value": "date",
                  "description": "optional; id | scheduled_date | assigned_at | started_at | done_at"
                },
                {
                  "key": "limit",
                  "value": "{{limit}}",
                  "description": "optional; integer 1-100"
                },
                {
                  "key": "pagination",
                  "value": "true",
                  "description": "optional; false = unpaginated",
                  "disabled": true
                },
                {
                  "key": "page",
                  "value": "1",
                  "description": "Page number"
                }
              ]
            },
            "description": "`GET /api/v1/jobs` â€” active jobs example (`in_progress=true`). **Default date = today** when no date params sent. See Order > List Jobs for full param reference."
          },
          "response": []
        },
        {
          "name": "List Report",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{company_token}}",
                  "type": "string"
                }
              ]
            },
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/api/v1/reports?limit={{limit}}&sort={{sort}}&page=1",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "reports"
              ],
              "query": [
                {
                  "key": "driver_id",
                  "value": "{{driver_id}}",
                  "description": "nullable, string",
                  "disabled": true
                },
                {
                  "key": "from_date",
                  "value": "{{from_date}}",
                  "description": "nullable, string",
                  "disabled": true
                },
                {
                  "key": "to_date",
                  "value": "{{to_date}}",
                  "description": "nullable, string",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "{{limit}}",
                  "description": "nullable|integer|min:1|max:100"
                },
                {
                  "key": "sort",
                  "value": "{{sort}}",
                  "description": "nullable|string|in:asc,desc"
                },
                {
                  "key": "page",
                  "value": "1",
                  "description": "Page number for paginated results"
                }
              ]
            },
            "description": "`GET /api/v1/reports`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Company\\ReportController@index`\n**Middleware:** `api, jwt.verify, checkType:company, ensure.company.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| driver_id | nullable, string |\n| from_date | nullable, string |\n| to_date | nullable, string |\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
          },
          "response": []
        }
      ],
      "description": "\n\n**Auth:** Bearer `{{company_token}}` (set automatically by **00 Auth > Login > Login as Company**).",
      "auth": {
        "type": "bearer",
        "bearer": [
          {
            "key": "token",
            "value": "{{company_token}}",
            "type": "string"
          }
        ]
      }
    },
    {
      "name": "04 Customer",
      "item": [
        {
          "name": "Address",
          "item": [
            {
              "name": "List Address",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/addresses?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "addresses"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable|string|in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/customer/addresses`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\AddressController@index`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n**Validation:** none detected â€” verify controller manually.\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Create Address",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "const response = pm.response.json();\r",
                      "\r",
                      "// Check the response status code\r",
                      "pm.test(\"Status code is 201\", function () {\r",
                      "    pm.expect(pm.response.code).to.equal(201);\r",
                      "});\r",
                      "\r",
                      "// Save the ID to an environment variable\r",
                      "pm.environment.set(\"address_id\", response.data.id);"
                    ],
                    "type": "text/javascript",
                    "packages": {},
                    "requests": {}
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"address\": { // required\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1200 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    },\n    \"is_default\": false // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/addresses",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "addresses"
                  ]
                },
                "description": "`POST /api/v1/customer/addresses`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\AddressController@store`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n**Validation:** `App\\Http\\Requests\\CustomerRequests\\Address\\StoreCustomerAddressRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| address | required, array |\n| is_default | nullable, boolean |"
              },
              "response": []
            },
            {
              "name": "Delete Address",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/addresses/{{address_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "addresses",
                    "{{address_id}}"
                  ]
                },
                "description": "`DELETE /api/v1/customer/addresses/{address}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\AddressController@destroy`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Set Default",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/addresses/{{address_id}}/default",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "addresses",
                    "{{address_id}}",
                    "default"
                  ]
                },
                "description": "`POST /api/v1/customer/addresses/{address}/default`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\AddressController@setDefault`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Asset Specification",
          "item": [
            {
              "name": "List Asset Specification",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/asset-specifications?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "asset-specifications"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/customer/asset-specifications`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\AssetSpecificationController@index`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| search | nullable, string |\n| limit | nullable, string |\n| sort | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Get Asset Specification",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/asset-specifications/{{asset_specification_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "asset-specifications",
                    "{{asset_specification_id}}"
                  ]
                },
                "description": "`GET /api/v1/customer/asset-specifications/{assetSpecification}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\AssetSpecificationController@show`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "List By Promotion",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/promotions/{{promotion_id}}/asset-specifications?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "promotions",
                    "{{promotion_id}}",
                    "asset-specifications"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/customer/promotions/{promotion}/asset-specifications`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\AssetSpecificationController@listByPromotion`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| search | nullable, string |\n| limit | nullable, string |\n| sort | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Waste Types",
          "item": [
            {
              "name": "List Waste Types",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/waste-types?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "waste-types"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "nullable, string â€” filters name/description",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, integer|min:1|max:100"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string, in:asc,desc (default asc by id)"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable â€” set false for unpaginated list",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/customer/waste-types`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\WasteTypeController@index`\n**Service:** `WasteTypeService::list` scoped to the authenticated customer's company\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n\nReturns company waste types as `WasteTypeSummaryResource` collection (`id`, `name`).\n\n| Query Param | Notes |\n|---|---|\n| search | optional name/description filter |\n| sort | `asc` \\| `desc` (default `asc`) |\n| limit | page size (max 100) |\n| pagination | set `false` for full unpaginated list |\n| page | page number when paginated |"
              },
              "response": []
            },
            {
              "name": "Get Waste Type",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/waste-types/{{waste_type_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "waste-types",
                    "{{waste_type_id}}"
                  ]
                },
                "description": "`GET /api/v1/customer/waste-types/{wasteType}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\WasteTypeController@show`\n**Service:** `WasteTypeService::detail` scoped to the authenticated customer's company\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n\nReturns `WasteTypeDetailResource` (`id`, `company_id`, `name`, `description`, `assets`, timestamps). Other-company waste types return **404**."
              },
              "response": []
            }
          ]
        },
        {
          "name": "Order",
          "item": [
            {
              "name": "List Ongoing Orders",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{customer_token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/orders/ongoing?sort={{sort}}&limit={{limit}}&page={{page}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "orders",
                    "ongoing"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "order_id",
                      "value": "{{order_id}}",
                      "description": "nullable, integer",
                      "disabled": true
                    },
                    {
                      "key": "order_uuid",
                      "value": "{{order_uuid}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "from_date",
                      "value": "{{from_date}}",
                      "description": "nullable, date Y-m-d",
                      "disabled": true
                    },
                    {
                      "key": "to_date",
                      "value": "{{to_date}}",
                      "description": "nullable, date Y-m-d",
                      "disabled": true
                    },
                    {
                      "key": "asset_id",
                      "value": "{{asset_id}}",
                      "description": "nullable, integer",
                      "disabled": true
                    },
                    {
                      "key": "asset_specification_id",
                      "value": "{{asset_specification_id}}",
                      "description": "nullable, integer",
                      "disabled": true
                    },
                    {
                      "key": "driver_id",
                      "value": "{{driver_id}}",
                      "description": "nullable, integer",
                      "disabled": true
                    },
                    {
                      "key": "promotion_id",
                      "value": "{{promotion_id}}",
                      "description": "nullable, integer",
                      "disabled": true
                    },
                    {
                      "key": "type",
                      "value": "{{type}}",
                      "description": "nullable, regular|swapped",
                      "disabled": true
                    },
                    {
                      "key": "order_type",
                      "value": "{{order_type}}",
                      "description": "nullable, alias of type",
                      "disabled": true
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, asc|desc (default asc)"
                    },
                    {
                      "key": "sort_by",
                      "value": "{{sort_by}}",
                      "description": "nullable, id|uuid|from_date|to_date|created_at|updated_at|status|grand_total",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, integer"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable â€” true/false",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "{{page}}",
                      "description": "page number"
                    }
                  ]
                },
                "description": "`GET /api/v1/customer/orders/ongoing`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\OrderController@ongoingOrders`\n**Service:** `OrderService::listFilteredOrders` with `status=ongoing`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n\nReturns the authenticated customer's ongoing orders (awaiting_payment excluded by ongoing status set). Response items are `OrderResource`.\n\n| Query Param | Notes |\n|---|---|\n| search / order_id / order_uuid | |\n| from_date / to_date | |\n| asset_id / asset_specification_id / driver_id / promotion_id | |\n| type / order_type | regular \\| swapped |\n| sort / sort_by / limit / pagination / page | list controls |\n"
              },
              "response": []
            },
            {
              "name": "List Orders",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{customer_token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/orders?sort={{sort}}&limit={{limit}}&page={{page}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "orders"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "nullable, string â€” uuid, customer, asset number, spec name, waste type, driver",
                      "disabled": true
                    },
                    {
                      "key": "status",
                      "value": "{{status}}",
                      "description": "nullable â€” single status, or special: ongoing / unconfirmed",
                      "disabled": true
                    },
                    {
                      "key": "statuses",
                      "value": "{{statuses}}",
                      "description": "nullable â€” comma-separated statuses (takes precedence over status)",
                      "disabled": true
                    },
                    {
                      "key": "order_id",
                      "value": "{{order_id}}",
                      "description": "nullable, integer",
                      "disabled": true
                    },
                    {
                      "key": "order_uuid",
                      "value": "{{order_uuid}}",
                      "description": "nullable, string â€” partial uuid match",
                      "disabled": true
                    },
                    {
                      "key": "from_date",
                      "value": "{{from_date}}",
                      "description": "nullable, date Y-m-d â€” orders.from_date >=",
                      "disabled": true
                    },
                    {
                      "key": "to_date",
                      "value": "{{to_date}}",
                      "description": "nullable, date Y-m-d â€” orders.from_date <=",
                      "disabled": true
                    },
                    {
                      "key": "asset_id",
                      "value": "{{asset_id}}",
                      "description": "nullable, integer",
                      "disabled": true
                    },
                    {
                      "key": "asset_specification_id",
                      "value": "{{asset_specification_id}}",
                      "description": "nullable, integer",
                      "disabled": true
                    },
                    {
                      "key": "driver_id",
                      "value": "{{driver_id}}",
                      "description": "nullable, integer â€” via jobs",
                      "disabled": true
                    },
                    {
                      "key": "promotion_id",
                      "value": "{{promotion_id}}",
                      "description": "nullable, integer",
                      "disabled": true
                    },
                    {
                      "key": "type",
                      "value": "{{type}}",
                      "description": "nullable, regular|swapped",
                      "disabled": true
                    },
                    {
                      "key": "order_type",
                      "value": "{{order_type}}",
                      "description": "nullable, alias of type",
                      "disabled": true
                    },
                    {
                      "key": "does_not_have_jobs",
                      "value": "{{does_not_have_jobs}}",
                      "description": "nullable, boolean",
                      "disabled": true
                    },
                    {
                      "key": "has_jobs",
                      "value": "{{has_jobs}}",
                      "description": "nullable, boolean",
                      "disabled": true
                    },
                    {
                      "key": "has_order_change_requests",
                      "value": "{{has_order_change_requests}}",
                      "description": "nullable, boolean",
                      "disabled": true
                    },
                    {
                      "key": "has_date_change_requests",
                      "value": "{{has_date_change_requests}}",
                      "description": "nullable, boolean â€” deprecated alias of has_order_change_requests",
                      "disabled": true
                    },
                    {
                      "key": "reference_order_id",
                      "value": "{{reference_order_id}}",
                      "description": "nullable, integer",
                      "disabled": true
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, asc|desc (default asc)"
                    },
                    {
                      "key": "sort_by",
                      "value": "{{sort_by}}",
                      "description": "nullable, id|uuid|from_date|to_date|created_at|updated_at|status|grand_total",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, integer"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable â€” true/false",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "{{page}}",
                      "description": "page number"
                    }
                  ]
                },
                "description": "`GET /api/v1/customer/orders`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\OrderController@index`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n**Service:** `OrderService::listFilteredOrders` / `applyOrderListFilters`\n\nScoped to the authenticated customer. `pending` expands to pending + awaiting_payment. Response items are `OrderResource` (list shape: money scalars, entity summaries; no nested `billing` / `line_items` unless relations are loaded).\n\n| Query Param | Notes |\n|---|---|\n| search | uuid, asset number, spec name, waste type, company, driver |\n| status / statuses | same as company list; special: ongoing, unconfirmed |\n| order_id / order_uuid / from_date / to_date | |\n| asset_id / asset_specification_id / driver_id / promotion_id | |\n| type / order_type | regular \\| swapped |\n| does_not_have_jobs / has_jobs / has_order_change_requests | |\n"
              },
              "response": []
            },
            {
              "name": "Billing",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{customer_token}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"asset_specification_id\": \"{{asset_specification_id}}\", // required\n    \"from_date\": \"{{from_date}}\", // required\n    \"to_date\": null, // optional\n    \"delivery_address\": { // optional\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1200 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    },\n    // \"address_id\": \"{{address_id}}\",\n    \"discount\": null, // optional\n    \"promotion_id\": \"{{promotion_id}}\", // optional\n    \"note\": null, // optional\n    \"waste_type_id\": \"{{waste_type_id}}\", // required\n    \"location_type\": \"site\", // optional\n    \"business_name\": null, // required when location_type is business\n    \"order_type\": \"{{order_type}}\", // optional\n    \"reference_order_id\": \"{{reference_order_id}}\", // required when order_type is swapped\n    \"payment_mode\": \"{{payment_method}}\" // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/order/billing",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "order",
                    "billing"
                  ]
                },
                "description": "`POST /api/v1/customer/order/billing`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\OrderController@billing`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n**Validation:** `App\\Http\\Requests\\CustomerRequests\\Order\\BillingRequest::rules()`\n**Service:** `BillingService::previewOrderBilling` + `OrderBillingAssembler`\n\nPreview order billing before place. Success envelope:\n- Top-level once: `data.asset_specification`, `data.waste_type`, `data.payment_term`\n- `data.billing` â€” money only (`currency`, `rental`, `items`, `totals`; `balance_adjustment` only when set)\n- Flat deprecated aliases remain siblings under `data` (`base_rent`, `tax`, `subtotal`, `grand_total`, `needs_to_pay`, â€¦)\n\n| Field | Rules |\n|---|---|\n| delivery_address | nullable address payload; when present it is used and address_id is ignored |\n| address_id | required when delivery_address is omitted; integer; 404 Address not found if it does not belong to the customer |\n| location_type | nullable, in:business,site |\n| business_name | required_if:location_type,business, nullable, string, max:255 |\n"
              },
              "response": []
            },
            {
              "name": "Place Order",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "const response = pm.response.json();\r",
                      "\r",
                      "// Check the response status code\r",
                      "pm.test(\"Status code is 201\", function () {\r",
                      "    pm.expect(pm.response.code).to.equal(201);\r",
                      "});\r",
                      "\r",
                      "// Save the ID to an environment variable\r",
                      "pm.environment.set(\"order_id\", response.data.id);"
                    ],
                    "type": "text/javascript",
                    "packages": {},
                    "requests": {}
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{customer_token}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"asset_specification_id\": \"{{asset_specification_id}}\", // required\n    \"from_date\": \"{{from_date}}\", // required\n    \"to_date\": null, // optional\n    \"delivery_address\": { // optional\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1400 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    },\n    // \"address_id\": \"{{address_id}}\",\n    \"discount\": null, // optional\n    \"promotion_id\": \"{{promotion_id}}\", // optional\n    \"note\": null, // optional\n    \"waste_type_id\": \"{{waste_type_id}}\", // required\n    \"location_type\": \"site\", // optional\n    \"business_name\": null, // required when location_type is business\n    \"order_type\": \"{{order_type}}\", // optional\n    \"reference_order_id\": \"{{reference_order_id}}\", // required when order_type is swapped\n    \"payment_mode\": \"{{payment_method}}\" // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/orders",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "orders"
                  ]
                },
                "description": "`POST /api/v1/customer/orders`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\OrderController@place`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n**Validation:** `App\\Http\\Requests\\CustomerRequests\\Order\\BillingRequest::rules()`\n**Service:** `OrderService::place`\n\nCreates order with `status=pending`, pricing snapshot, payment term snapshot, line items, and status history. Response is `OrderResource` at `data`: money only under `data.billing` (`currency`, `rental`, `items`, `totals`) â€” no duplicate `line_items` or top-level money scalars. `billing.totals.needs_to_pay` is `0` at place.\n\n`delivery_address` takes priority over `address_id`. `address_id` is required when `delivery_address` is omitted. `business_name` is required when `location_type` is `business`.\n"
              },
              "response": []
            },
            {
              "name": "Get Order",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{customer_token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/order/{{order_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "order",
                    "{{order_id}}"
                  ]
                },
                "description": "`GET /api/v1/customer/order/{order}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\OrderController@show`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n**Validation:** none detected â€” verify controller manually.\n\nResponse is `OrderResource` at `data`. Same shape as place: money only under `data.billing` (`currency`, `rental`, `items`, `totals`); no `line_items` duplicate; no top-level money scalars. Entity summaries once (`asset_specification`, `waste_type`, `payment_term` / `order_payment_term`).\n"
              },
              "response": []
            },
            {
              "name": "Cancel Order",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{customer_token}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/order/{{order_id}}/cancel",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "order",
                    "{{order_id}}",
                    "cancel"
                  ]
                },
                "description": "`POST /api/v1/customer/order/{order}/cancel`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\OrderController@cancelOrder` â†’ `OrderService::cancelCustomerOrder`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n\nCustomer-only cancel. Sets `status=cancelled` + `status_changed_at`, cancels assignable jobs, refunds `total_paid` to wallet when paid, writes status history, dispatches `CancelledEvent`. Blocked within 24 hours of `from_date` and once dispatched or later. Company cancel: `PATCH /api/v1/cancel/order/{orderId}`.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Chat",
          "item": [
            {
              "name": "Send Message",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"content\": \"Content\", // required\n    \"type\": \"Type\" // required\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/chats/{{chat_id}}/message",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "chats",
                    "{{chat_id}}",
                    "message"
                  ]
                },
                "description": "`POST /api/v1/customer/chats/{chat}/message`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\ChatController@sendMessage`\n**Middleware:** `api, jwt.verify, checkType:customer, ensure.customer.user`\n**Validation:** `App\\Http\\Requests\\Chat\\SendMessagesRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| content | required, string |\n| type | required, string |"
              },
              "response": []
            },
            {
              "name": "Get Messages",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/chats/{{chat_id}}/messages?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "chats",
                    "{{chat_id}}",
                    "messages"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/customer/chats/{chat}/messages`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\ChatController@getMessages`\n**Middleware:** `api, jwt.verify, checkType:customer, ensure.customer.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| search | nullable, string |\n| limit | nullable, string |\n| sort | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Start Chat",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/chats/{{order_id}}/create",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "chats",
                    "{{order_id}}",
                    "create"
                  ]
                },
                "description": "`POST /api/v1/customer/chats/{order}/create`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\ChatController@startChat`\n**Middleware:** `api, jwt.verify, checkType:customer, ensure.customer.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Order Change Request",
          "item": [
            {
              "name": "List Order Change Request",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/order-change-requests?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "order-change-requests"
                  ],
                  "query": [
                    {
                      "key": "filters",
                      "value": "{{filters}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/customer/order-change-requests`\n\n**Controller:** `Customer\\\\OrderChangeRequestController@index`\n**Service:** `App\\\\Services\\\\OrderChangeRequest\\\\OrderChangeRequestService::listForCustomer`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n\n| Query | Notes |\n|---|---|\n| status | default `pending` |\n| type | extension \\| early_return \\| reschedule |\n| filters[...] | nested filter object supported |\n| limit, page, pagination | ListPagination |"
              },
              "response": []
            },
            {
              "name": "Wrapper Show",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/order-change-requests/wrapper?limit={{limit}}&sort={{sort}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "order-change-requests",
                    "wrapper"
                  ],
                  "query": [
                    {
                      "key": "filters",
                      "value": "{{filters}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    }
                  ]
                },
                "description": "`GET /api/v1/customer/order-change-requests/wrapper`\n\n**Controller:** `Customer\\\\OrderChangeRequestController@wrapper`\n**Service:** `App\\\\Services\\\\OrderChangeRequest\\\\OrderChangeRequestService::summarizeForCustomer`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n\nStatus buckets: pending, approved, rejected, cancelled (+ counts)."
              },
              "response": []
            },
            {
              "name": "Get Order Change Request",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/order-change-requests/{{order_change_request_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "order-change-requests",
                    "{{order_change_request_id}}"
                  ]
                },
                "description": "`GET /api/v1/customer/order-change-requests/{orderChangeRequest}`\n\n**Controller:** `Customer\\\\OrderChangeRequestController@show`\n**Service:** `App\\\\Services\\\\OrderChangeRequest\\\\OrderChangeRequestService::findForCustomer`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n\nDetail with pricing snapshot and order context."
              },
              "response": []
            },
            {
              "name": "Create Order Change Request",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"requested_from_date\": \"{{from_date}}\", // optional\n    \"requested_to_date\": \"{{to_date}}\", // optional\n    \"reason\": null // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/orders/{{order_id}}/order-change-requests",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "orders",
                    "{{order_id}}",
                    "order-change-requests"
                  ]
                },
                "description": "`POST /api/v1/customer/orders/{orderId}/order-change-requests`\n\n**Controller:** `Customer\\\\OrderChangeRequestController@store`\n**Service:** `App\\\\Services\\\\OrderChangeRequest\\\\OrderChangeRequestService::submitForCustomer`\n**FormRequest:** `StoreOrderChangeRequest`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n\nCustomer **only** actor that creates requests. Returns 409 if a pending request already exists for the order.\n\nType auto-resolved: `extension`, `reschedule`, or `early_return` (shorter pickup, billing unchanged until company approves).\n\n| Field | Rules |\n|---|---|\n| requested_from_date | nullable; when order from_date is future: after_or_equal:today; when past: must match current from_date |\n| requested_to_date | nullable; on/after effective from_date; min rental days apply except early_return |\n| reason | nullable, string, max:1000 |"
              },
              "response": []
            },
            {
              "name": "Billing",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"requested_from_date\": \"{{from_date}}\", // required\n    \"requested_to_date\": \"{{to_date}}\" // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/orders/{{order_id}}/order-change-requests/billing",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "orders",
                    "{{order_id}}",
                    "order-change-requests",
                    "billing"
                  ]
                },
                "description": "`POST /api/v1/customer/orders/{orderId}/order-change-requests/billing`\n\n**Controller:** `Customer\\\\OrderChangeRequestController@billing`\n**Service:** `App\\\\Services\\\\OrderChangeRequest\\\\OrderChangeRequestService::previewBillingForCustomer`\n**FormRequest:** `PreviewOrderChangeBillingRequest`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n\nResponse: `type`, dates, `existing_total_paid`, `balance_adjustment`, `billing_unchanged` (true for early_return), `billing`, `order` summary.\n\n| Field | Rules |\n|---|---|\n| requested_from_date | required when order from_date is today/future; when past omit or keep current |\n| requested_to_date | nullable, on/after effective from_date |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Demerit Point",
          "item": [
            {
              "name": "Demerit Details",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/demerit/details",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "demerit",
                    "details"
                  ]
                },
                "description": "`GET /api/v1/customer/demerit/details`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\DemeritPointController@demeritDetails`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Demerit Orders",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/demerit/orders?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "demerit",
                    "orders"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable|string|in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/customer/demerit/orders`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\DemeritPointController@demeritOrders`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n**Validation:** none detected â€” verify controller manually.\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Get Order Violated Policies",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/demerit/{{order_id}}/orders?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "demerit",
                    "{{order_id}}",
                    "orders"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable|string|in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/customer/demerit/{order}/orders`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\DemeritPointController@getOrderViolatedPolicies`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n**Validation:** none detected â€” verify controller manually.\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Finix",
          "item": [
            {
              "name": "Create Identity",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"entity\": { // required\n        \"phone\": \"7145677613\", // optional\n        \"first_name\": \"Customer\", // required\n        \"last_name\": \"Test\", // required\n        \"email\": \"customer@gmail.com\", // required\n        \"personal_address\": { // optional\n            \"city\": \"San Mateo\", // required when entity.personal_address is sent\n            \"country\": \"USA\", // required when entity.personal_address is sent\n            \"region\": \"CA\", // required when entity.personal_address is sent\n            \"line2\": \"Apartment 7\", // optional\n            \"line1\": \"741 Douglass St\", // required when entity.personal_address is sent\n            \"postal_code\": \"94114\" // required when entity.personal_address is sent\n        }\n    },\n    \"identity_roles\": [ // optional\n        \"BUYER\"\n    ],\n    \"tags\": { // optional\n        \"test user\": \"adding identity for testing\" // optional\n    },\n    \"type\": \"PERSONAL\" // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/finix/identity",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "finix",
                    "identity"
                  ]
                },
                "description": "`POST /api/v1/customer/finix/identity`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\FinixController@createIdentity`\n**FormRequest:** `App\\Http\\Requests\\CustomerRequests\\Finix\\CreateCustomerFinixIdentityRequest`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n\nPayload is forwarded to Finix (`$request->all()`). Validated fields below; `identity_roles` / `type` are optional Finix extras.\n\n| Field | Rules |\n|---|---|\n| entity | required, array |\n| entity.first_name | required, string, max:255 |\n| entity.last_name | required, string, max:255 |\n| entity.email | required, email, max:255 |\n| entity.phone | nullable, string, max:20 |\n| entity.personal_address | nullable, array |\n| tags | nullable, array |\n| identity_roles | optional (Finix) |\n| type | optional (Finix), e.g. PERSONAL |"
              },
              "response": []
            },
            {
              "name": "Create Payment Instrument",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"address\": { // optional\n        \"city\": \"San Francisco\", // optional\n        \"country\": \"USA\", // optional\n        \"line1\": \"900 Metro Center Blv\", // optional\n        \"postal_code\": \"94404\", // optional\n        \"region\": \"CA\" // optional\n    },\n    \"expiration_month\": 12, // required when type is PAYMENT_CARD\n    \"expiration_year\": 2029, // required when type is PAYMENT_CARD\n    \"name\": \"Muhammad Arslan\", // required when token is omitted\n    \"number\": \"5200828282828210\", // required when type is PAYMENT_CARD\n    \"security_code\": \"022\", // required when type is PAYMENT_CARD\n    \"type\": \"PAYMENT_CARD\" // required when token is omitted\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/finix/payment-instrument",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "finix",
                    "payment-instrument"
                  ]
                },
                "description": "`POST /api/v1/customer/finix/payment-instrument`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\FinixController@createPaymentInstrument`\n**FormRequest:** `App\\Http\\Requests\\CustomerRequests\\Finix\\CreateCustomerPaymentInstrumentRequest`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n\nProvide either a Finix `token` **or** raw instrument fields (`type` + card/bank details).\n`identity` is set server-side from the customer Finix identity â€” do not send it in the body.\n\n| Field | Rules |\n|---|---|\n| token | required_without:type, string |\n| type | required_without:token, in:PAYMENT_CARD,BANK_ACCOUNT |\n| name | required_without:token, string |\n| number / expiration_month / expiration_year / security_code | required_if:type,PAYMENT_CARD |\n| address | nullable, array (line1, city, region, postal_code, country) |\n| account_number / account_type / bank_code / country | required_if:type,BANK_ACCOUNT |\n| tags | nullable, array |"
              },
              "response": []
            },
            {
              "name": "Pay All Dues",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"payment_instrument_id\": \"{{payment_instrument_id}}\", // required\n    \"tags\": null // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/payments/pay-all-dues",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "payments",
                    "pay-all-dues"
                  ]
                },
                "description": "`POST /api/v1/customer/payments/pay-all-dues`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\FinixController@payAllDues`\n**FormRequest:** `App\\Http\\Requests\\CustomerRequests\\Finix\\PayAllDuesRequest`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n\n| Field | Rules |\n|---|---|\n| payment_instrument_id | required, string, exists:payment_instruments,finix_id |\n| tags | nullable, array |"
              },
              "response": []
            },
            {
              "name": "Pay Order",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"is_wallet_used\": false, // required\n    \"amount\": 55, // required when is_wallet_used is false\n    \"tags\": null, // optional\n    \"payment_instrument_id\": \"{{payment_instrument_id}}\", // required when is_wallet_used is false\n    \"idempotency_id\": null // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/orders/{{order_id}}/pay",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "orders",
                    "{{order_id}}",
                    "pay"
                  ]
                },
                "description": "`POST /api/v1/customer/orders/{order}/pay`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\FinixController@payOrder`\n**FormRequest:** `App\\Http\\Requests\\CustomerRequests\\Finix\\PayOrderRequest`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n\nPayable only when order status is `awaiting_payment`, `approved`, or `confirmed` and `remaining_balance > 0` (else **422**).\n\n| Field | Rules |\n|---|---|\n| is_wallet_used | required, boolean |\n| amount | required_if:is_wallet_used,false, numeric, min:0 |\n| payment_instrument_id | required_if:is_wallet_used,false, string, exists:payment_instruments,finix_id |\n| tags | nullable, array |\n| idempotency_id | nullable, string, max:255 |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Customer",
          "item": [
            {
              "name": "Dashboard",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/dashboard",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "dashboard"
                  ]
                },
                "description": "`GET /api/v1/customer/dashboard`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\CustomerController@dashboard`\n**Resource:** `App\\Http\\Resources\\Customer\\CustomerDashboardResource`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n\n| Field | Type |\n|---|---|\n| pending_orders | int |\n| swapped_orders | int |\n| awaiting_payment_orders | int |\n| confirmed_orders | int |\n| ongoing_orders | int |\n| dispatched_orders | int |\n| delivered_orders | int |\n| completed_orders | int |\n| cancelled_orders | int |\n| rejected_orders | int |\n| order_change_requests | int |\n| pending_dues_total | float (USD) |\n| unread_notifications | int |\n| read_notifications | int |\n"
              },
              "response": []
            },
            {
              "name": "Pending Dues Total",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/total/pending-dues",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "total",
                    "pending-dues"
                  ]
                },
                "description": "`GET /api/v1/customer/total/pending-dues`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\CustomerController@pendingDuesTotal`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n\nReturns `{ total_remaining_balance }` in USD.\n"
              },
              "response": []
            },
            {
              "name": "Orders Pending Dues",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/orders/pending-dues?sort={{sort}}&limit={{limit}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "orders",
                    "pending-dues"
                  ],
                  "query": [
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "optional; nullable, string, in:asc,desc"
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "optional; nullable, integer, min:1, max:100"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/customer/orders/pending-dues`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\CustomerController@pendingDueOrders`\n**Response data:** `{ pending_due_orders: OrderResource[], total_pending_dues: float }`\n**FormRequest:** `App\\Http\\Requests\\CustomerRequests\\Profile\\ListPendingDueOrdersRequest`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n\n| Query Param | Rules |\n|---|---|\n| sort | nullable, string, in:asc,desc |\n| limit | nullable, integer, min:1, max:100 |\n| page | page number |"
              },
              "response": []
            },
            {
              "name": "Demerit Points",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/demerit-points",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "demerit-points"
                  ]
                },
                "description": "`GET /api/v1/customer/demerit-points`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\CustomerController@demeritPoints`\n**Resource:** `UserResource` with nested `CustomerResource` including `demerit_points`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n"
              },
              "response": []
            },
            {
              "name": "Get Customer",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/profile",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "profile"
                  ]
                },
                "description": "`GET /api/v1/customer/profile`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\CustomerController@show`\n**Resource:** `UserResource` with nested `CustomerResource` (company, payment_term, addresses)\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n"
              },
              "response": []
            },
            {
              "name": "Update Customer",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"first_name\": \"Jane\", // optional\n    \"last_name\": \"Doe\", // optional\n    \"phone\": \"+15551234567\", // optional\n    \"image\": null // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/profile",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "profile"
                  ]
                },
                "description": "`PUT /api/v1/customer/profile`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\CustomerController@update`\n**Resource:** `UserResource` with nested `CustomerResource`\n**FormRequest:** `App\\Http\\Requests\\CustomerRequests\\Profile\\UpdateProfileRequest`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n\nEmail cannot be changed here. Addresses are managed via `/customer/addresses`.\n\n| Field | Rules |\n|---|---|\n| first_name | sometimes, string, max:255 |\n| last_name | sometimes, string, max:255 |\n| phone | sometimes, string, max:255 |\n| image | nullable, string |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Notification",
          "item": [
            {
              "name": "List Notification",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/notifications/get?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "notifications",
                    "get"
                  ],
                  "query": [
                    {
                      "key": "status",
                      "value": "{{status}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/customer/notifications/get`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\NotificationController@index`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| status | nullable, string |\n| limit | nullable, string |\n| sort | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Mark All As Read",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/notifications/mark-all-read",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "notifications",
                    "mark-all-read"
                  ]
                },
                "description": "`POST /api/v1/customer/notifications/mark-all-read`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\NotificationController@markAllAsRead`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Delete Notification",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/notifications/{{notification_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "notifications",
                    "{{notification_id}}"
                  ]
                },
                "description": "`DELETE /api/v1/customer/notifications/{id}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\NotificationController@deleteNotification`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Mark As Read",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/notifications/{{notification_id}}/read",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "notifications",
                    "{{notification_id}}",
                    "read"
                  ]
                },
                "description": "`POST /api/v1/customer/notifications/{id}/read`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\NotificationController@markAsRead`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Customer Policy Violation",
          "item": [
            {
              "name": "Get Customer Policy Violation",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/policy-violation-disputes/messages/{{policy_violation_dispute_message_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "policy-violation-disputes",
                    "messages",
                    "{{policy_violation_dispute_message_id}}"
                  ]
                },
                "description": "`GET /api/v1/customer/policy-violation-disputes/messages/{policyViolationDisputeMessage}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\CustomerPolicyViolationController@show`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Update Customer Policy Violation",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PATCH",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"message\": \"Message\" // required\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/policy-violation-disputes/messages/{{policy_violation_dispute_message_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "policy-violation-disputes",
                    "messages",
                    "{{policy_violation_dispute_message_id}}"
                  ]
                },
                "description": "`PATCH /api/v1/customer/policy-violation-disputes/messages/{policyViolationDisputeMessage}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\CustomerPolicyViolationController@update`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n**Validation:** inline Validator::make()/$request->validate() (no dedicated FormRequest â€” best-effort reflection).\n\n| Field | Rules |\n|---|---|\n| message | required, string |"
              },
              "response": []
            },
            {
              "name": "Delete Customer Policy Violation",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/policy-violation-disputes/messages/{{policy_violation_dispute_message_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "policy-violation-disputes",
                    "messages",
                    "{{policy_violation_dispute_message_id}}"
                  ]
                },
                "description": "`DELETE /api/v1/customer/policy-violation-disputes/messages/{policyViolationDisputeMessage}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\CustomerPolicyViolationController@destroy`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "List Customer Policy Violation",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/policy-violation-disputes/{{customer_policy_violation_id}}?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "policy-violation-disputes",
                    "{{customer_policy_violation_id}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable|string|in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/customer/policy-violation-disputes/{customerPolicyViolation}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\CustomerPolicyViolationController@index`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n**Validation:** none detected â€” verify controller manually.\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Violation Details",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/policy-violations/{{customer_policy_violation_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "policy-violations",
                    "{{customer_policy_violation_id}}"
                  ]
                },
                "description": "`GET /api/v1/customer/policy-violations/{customerPolicyViolation}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\CustomerPolicyViolationController@violationDetails`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Create Customer Policy Violation",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"message\": \"Message\", // required\n    \"subject\": null // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/policy-violations/{{customer_policy_violation_id}}/dispute-messages",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "policy-violations",
                    "{{customer_policy_violation_id}}",
                    "dispute-messages"
                  ]
                },
                "description": "`POST /api/v1/customer/policy-violations/{customerPolicyViolation}/dispute-messages`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\CustomerPolicyViolationController@store`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n**Validation:** inline Validator::make()/$request->validate() (no dedicated FormRequest â€” best-effort reflection).\n\n| Field | Rules |\n|---|---|\n| message | required, string |\n| subject | nullable, string, max:255 |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Transaction",
          "item": [
            {
              "name": "List Transaction",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/transactions?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "transactions"
                  ],
                  "query": [
                    {
                      "key": "order_id",
                      "value": "{{order_id}}",
                      "description": "nullable, integer, exists:orders,id",
                      "disabled": true
                    },
                    {
                      "key": "from_date",
                      "value": "{{from_date}}",
                      "description": "nullable, date Y-m-d",
                      "disabled": true
                    },
                    {
                      "key": "to_date",
                      "value": "{{to_date}}",
                      "description": "nullable, date Y-m-d, after_or_equal:from_date",
                      "disabled": true
                    },
                    {
                      "key": "payment_status",
                      "value": "succeeded",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "payment_method",
                      "value": "finix",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "search",
                      "value": "",
                      "description": "nullable, string â€” transaction_number / reference_id / gateway ids",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, page size (max 100)"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/customer/transactions`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\TransactionController@index`\n**Resource:** `App\\Http\\Resources\\Transaction\\TransactionResource`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n\nReturns the authenticated customer's payment transactions (MoneyCast USD amounts) with nested order summary (`asset` / `asset_specification` when present).\n\n| Query Param | Rules |\n|---|---|\n| order_id | nullable, integer, exists:orders,id (must belong to customer) |\n| from_date | nullable, date Y-m-d |\n| to_date | nullable, date Y-m-d, after_or_equal:from_date |\n| payment_status | nullable, string |\n| payment_method | nullable, string |\n| search | nullable, string, max:255 |\n| limit | nullable, page size |\n| sort | nullable, in:asc,desc |\n| page | page number |"
              },
              "response": []
            },
            {
              "name": "Get Transaction",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{customer_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/customer/transactions/{{transaction_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "customer",
                    "transactions",
                    "{{transaction_id}}"
                  ]
                },
                "description": "`GET /api/v1/customer/transactions/{transaction}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\TransactionController@show`\n**Resource:** `App\\Http\\Resources\\Transaction\\TransactionResource`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n\nReturns a single transaction owned by the authenticated customer (404 if `customer_id` does not match). Includes nested order summary, payment instrument, cheque, and wallet transaction when present.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Feedback",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{customer_token}}",
                  "type": "string"
                }
              ]
            },
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"rating\": 1, // required\n    \"comment\": \"Comment\" // required\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{base_url}}/api/v1/customer/feedback/{{order_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "customer",
                "feedback",
                "{{order_id}}"
              ]
            },
            "description": "`POST /api/v1/customer/feedback/{order}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Customer\\CustomerFeedback@feedback`\n**Middleware:** `api, jwt.verify, checkType:customer, check.user.active.status, ensure.customer.user`\n**Validation:** inline Validator::make()/$request->validate() (no dedicated FormRequest â€” best-effort reflection).\n\n| Field | Rules |\n|---|---|\n| rating | required, numeric, min:1, max:5 |\n| comment | required, string |"
          },
          "response": []
        }
      ]
    },
    {
      "name": "05 Driver",
      "item": [
        {
          "name": "Jobs",
          "item": [
            {
              "name": "List Planned Jobs",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/jobs",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "jobs"
                  ],
                  "query": [
                    {
                      "key": "date",
                      "value": "{{from_date}}",
                      "disabled": true,
                      "description": "optional; Exact scheduled_date Y-m-d. Omit date/from_date/to_date to list every date."
                    },
                    {
                      "key": "from_date",
                      "value": "{{from_date}}",
                      "disabled": true,
                      "description": "optional; Range start Y-m-d"
                    },
                    {
                      "key": "to_date",
                      "value": "{{to_date}}",
                      "disabled": true,
                      "description": "optional; Range end Y-m-d"
                    },
                    {
                      "key": "order_id",
                      "value": "{{order_id}}",
                      "disabled": true,
                      "description": "optional"
                    },
                    {
                      "key": "role",
                      "value": "delivery",
                      "disabled": true,
                      "description": "optional; delivery | retrieve"
                    },
                    {
                      "key": "job_type",
                      "value": "delivery_job",
                      "disabled": true,
                      "description": "optional; any JobTypeEnum. Non-primary types list child rows instead of roots."
                    },
                    {
                      "key": "job_category",
                      "value": "primary",
                      "disabled": true,
                      "description": "optional; primary | bridge | static. Default list is roots. bridge/static lists matching child jobs."
                    },
                    {
                      "key": "status",
                      "value": "planned",
                      "disabled": true,
                      "description": "optional; planned | in_progress | done | cancelled | transferred | aborted. Omit for all of these. todo is never listed."
                    },
                    {
                      "key": "statuses[]",
                      "value": "in_progress",
                      "disabled": true,
                      "description": "optional; repeat for multiple statuses"
                    },
                    {
                      "key": "search",
                      "value": "",
                      "disabled": true,
                      "description": "optional; Order uuid or customer name"
                    },
                    {
                      "key": "sort",
                      "value": "asc",
                      "disabled": true,
                      "description": "optional"
                    },
                    {
                      "key": "sort_by",
                      "value": "scheduled_date",
                      "disabled": true,
                      "description": "optional"
                    }
                  ]
                },
                "description": "`GET /api/v1/driver/jobs`\n\nAssigned jobs for the authenticated driver. Default (no query params): **all root trees on every date**, **all statuses except `todo`** (`planned`, `in_progress`, `done`, `cancelled`, `transferred`, `aborted`). Other drivers' jobs are omitted. `driver_id` is taken from the JWT, not the query.\n\nResponse `data` is an array of jobs (no nested `children`). Every row includes `open_issue_impact` (`blocking`, `non_blocking`, or `none`) and `open_issue` (the winning open issue summary or `null`). The list query loads matching rows plus `order.customer` and `order.deliveryAddress` only. `duration_mins` is the stored tree total on roots. `children_count` is every descendant. Nested `children`, `progress`, `driver`, `truck`, `asset`, `asset_specification`, `evidence`, and `issues` are omitted. Each root includes a compact `order` (`id`, `uuid`, `status`, `customer` as `CustomerSummaryResource` including `image`/`image_url`/`is_active`/`is_delinquent`, and `delivery_address`). Jobs with no order return `order: null`.\n\n**Filters:** `job_category` (`primary`|`bridge`|`static`), `job_type` (any JobTypeEnum), `status` or `statuses[]`. Omit status filters to return every visible status. `bridge` / `static` (or a non-primary `job_type`) lists matching child rows instead of roots.\n\nUses the same `applyFilters` keys as company job lists (`date`, `from_date`, `to_date`, `order_id`, `role`, `job_type`, `job_category`, `status`, `statuses`, `search`). Pagination defaults **on** (`pagination=false` allowed), matching company `GET /order/jobs`.\n\n**Query:** `date`, `from_date`, `to_date` (Y-m-d; omit all â†’ every date), `order_id`, `role` (`delivery`|`retrieve`), `job_type`, `job_category`, `status`, `statuses[]`, `search`, `sort` (`asc`|`desc`), `sort_by` (`id`|`scheduled_date`|`assigned_at`|`started_at`|`done_at`|`execution_sequence`), `limit`, `pagination`.\n\n**Auth:** driver JWT. No check-in required."
              },
              "response": []
            },
            {
              "name": "Job Details",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/jobs/{{driver_job_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "jobs",
                    "{{driver_job_id}}"
                  ]
                },
                "description": "`GET /api/v1/driver/jobs/{driverJob}`\n\nRecursive tree (walks to the root). Must belong to the authenticated driver. Every node includes `open_issue_impact` (`blocking`, `non_blocking`, or `none`) and `open_issue` (the winning open issue summary or `null`).\nJobs with status `todo` are hidden (404), same as the driver job list.\nNested `driver` is omitted â€” the JWT already identifies the driver.\n"
              },
              "response": [
                {
                  "name": "Success",
                  "originalRequest": {
                    "method": "GET",
                    "header": [],
                    "url": {
                      "raw": "{{base_url}}/api/v1/driver/jobs/{{driver_job_id}}",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "driver",
                        "jobs",
                        "{{driver_job_id}}"
                      ]
                    }
                  },
                  "status": "OK",
                  "code": 200,
                  "_postman_previewlanguage": "json",
                  "header": [
                    {
                      "key": "Content-Type",
                      "value": "application/json"
                    }
                  ],
                  "cookie": [],
                  "body": "{\n  \"success\": true,\n  \"message\": \"Driver job retrieved successfully.\",\n  \"data\": {\n    \"id\": 5001,\n    \"uuid\": \"00000000-0000-4000-8000-000000005001\",\n    \"parent_job_id\": null,\n    \"order_id\": 88,\n    \"job_number\": \"JOB-12-005001\",\n    \"job_category\": \"primary\",\n    \"job_type\": \"deliver\",\n    \"label\": \"Delivery\",\n    \"source\": \"order\",\n    \"status\": \"planned\",\n    \"execution_sequence\": 1,\n    \"scheduled_date\": \"2026-08-01\",\n    \"duration_mins\": 42,\n    \"transit_duration_mins\": 0,\n    \"static_duration_mins\": 0,\n    \"distance_km\": null,\n    \"eta_source\": null,\n    \"from_location\": {\n      \"name\": \"Driver Lot\",\n      \"address\": \"100 Depot Rd, Austin, TX\",\n      \"lat\": 30.2301,\n      \"lng\": -97.7012\n    },\n    \"to_location\": {\n      \"name\": \"Lot Alpha\",\n      \"address\": \"10 River St, Austin, TX\",\n      \"lat\": 30.2501,\n      \"lng\": -97.7204\n    },\n    \"planned_start_at\": null,\n    \"planned_end_at\": null,\n    \"arrived_at\": null,\n    \"departed_at\": null,\n    \"is_required\": true,\n    \"notes\": \"Manual delivery\",\n    \"progress\": {\n      \"total\": 5,\n      \"done\": 0,\n      \"percent\": 0\n    },\n    \"children_count\": 2,\n    \"children\": [\n      {\n        \"id\": 5002,\n        \"uuid\": \"00000000-0000-4000-8000-000000005002\",\n        \"parent_job_id\": 5001,\n        \"order_id\": 88,\n        \"job_number\": \"JOB-12-005002\",\n        \"job_category\": \"bridge\",\n        \"job_type\": \"pickup\",\n        \"label\": \"Pickup\",\n        \"source\": \"dispatcher\",\n        \"status\": \"planned\",\n        \"execution_sequence\": 1,\n        \"scheduled_date\": \"2026-08-01\",\n        \"duration_mins\": 21,\n        \"transit_duration_mins\": 1,\n        \"static_duration_mins\": 0,\n        \"distance_km\": 4.2,\n        \"eta_source\": \"manual\",\n        \"from_location\": {\n          \"name\": \"Driver Lot\",\n          \"address\": \"100 Depot Rd, Austin, TX\",\n          \"lat\": 30.2301,\n          \"lng\": -97.7012\n        },\n        \"to_location\": {\n          \"name\": \"Lot Alpha\",\n          \"address\": \"10 River St, Austin, TX\",\n          \"lat\": 30.2501,\n          \"lng\": -97.7204\n        },\n        \"planned_start_at\": null,\n        \"planned_end_at\": null,\n        \"arrived_at\": null,\n        \"departed_at\": null,\n        \"is_required\": true,\n        \"notes\": null,\n        \"progress\": {\n          \"total\": 3,\n          \"done\": 0,\n          \"percent\": 0\n        },\n        \"children_count\": 2,\n        \"children\": [\n          {\n            \"id\": 5004,\n            \"uuid\": \"00000000-0000-4000-8000-000000005004\",\n            \"parent_job_id\": 5002,\n            \"order_id\": 88,\n            \"job_number\": \"JOB-12-005004\",\n            \"job_category\": \"static\",\n            \"job_type\": \"empty_inspect_and_attach\",\n            \"label\": \"Empty Inspect and Attach\",\n            \"source\": \"dispatcher\",\n            \"status\": \"planned\",\n            \"execution_sequence\": 1,\n            \"scheduled_date\": \"2026-08-01\",\n            \"duration_mins\": 15,\n            \"transit_duration_mins\": 0,\n            \"static_duration_mins\": 15,\n            \"distance_km\": null,\n            \"eta_source\": null,\n            \"from_location\": null,\n            \"to_location\": null,\n            \"planned_start_at\": null,\n            \"planned_end_at\": null,\n            \"arrived_at\": null,\n            \"departed_at\": null,\n            \"is_required\": true,\n            \"notes\": null,\n            \"progress\": {\n              \"total\": 1,\n              \"done\": 0,\n              \"percent\": 0\n            },\n            \"children_count\": 0,\n            \"children\": []\n          },\n          {\n            \"id\": 5005,\n            \"uuid\": \"00000000-0000-4000-8000-000000005005\",\n            \"parent_job_id\": 5002,\n            \"order_id\": 88,\n            \"job_number\": \"JOB-12-005005\",\n            \"job_category\": \"static\",\n            \"job_type\": \"qr_code_scan_asset\",\n            \"label\": \"QR Code Scan Asset\",\n            \"source\": \"dispatcher\",\n            \"status\": \"planned\",\n            \"execution_sequence\": 2,\n            \"scheduled_date\": \"2026-08-01\",\n            \"duration_mins\": 5,\n            \"transit_duration_mins\": 0,\n            \"static_duration_mins\": 5,\n            \"distance_km\": null,\n            \"eta_source\": null,\n            \"from_location\": null,\n            \"to_location\": null,\n            \"planned_start_at\": null,\n            \"planned_end_at\": null,\n            \"arrived_at\": null,\n            \"departed_at\": null,\n            \"is_required\": true,\n            \"notes\": null,\n            \"progress\": {\n              \"total\": 1,\n              \"done\": 0,\n              \"percent\": 0\n            },\n            \"children_count\": 0,\n            \"children\": []\n          }\n        ]\n      },\n      {\n        \"id\": 5003,\n        \"uuid\": \"00000000-0000-4000-8000-000000005003\",\n        \"parent_job_id\": 5001,\n        \"order_id\": 88,\n        \"job_number\": \"JOB-12-005003\",\n        \"job_category\": \"bridge\",\n        \"job_type\": \"haul\",\n        \"label\": \"Haul\",\n        \"source\": \"dispatcher\",\n        \"status\": \"planned\",\n        \"execution_sequence\": 2,\n        \"scheduled_date\": \"2026-08-01\",\n        \"duration_mins\": 21,\n        \"transit_duration_mins\": 1,\n        \"static_duration_mins\": 0,\n        \"distance_km\": 4.2,\n        \"eta_source\": \"manual\",\n        \"from_location\": {\n          \"name\": \"Lot Alpha\",\n          \"address\": \"10 River St, Austin, TX\",\n          \"lat\": 30.2501,\n          \"lng\": -97.7204\n        },\n        \"to_location\": {\n          \"name\": \"Customer Site\",\n          \"address\": \"500 Main St, Austin, TX\",\n          \"lat\": 30.2672,\n          \"lng\": -97.7431\n        },\n        \"planned_start_at\": null,\n        \"planned_end_at\": null,\n        \"arrived_at\": null,\n        \"departed_at\": null,\n        \"is_required\": true,\n        \"notes\": null,\n        \"progress\": {\n          \"total\": 2,\n          \"done\": 0,\n          \"percent\": 0\n        },\n        \"children_count\": 1,\n        \"children\": [\n          {\n            \"id\": 5006,\n            \"uuid\": \"00000000-0000-4000-8000-000000005006\",\n            \"parent_job_id\": 5003,\n            \"order_id\": 88,\n            \"job_number\": \"JOB-12-005006\",\n            \"job_category\": \"static\",\n            \"job_type\": \"photo_of_asset\",\n            \"label\": \"Photo of Asset\",\n            \"source\": \"dispatcher\",\n            \"status\": \"planned\",\n            \"execution_sequence\": 1,\n            \"scheduled_date\": \"2026-08-01\",\n            \"duration_mins\": 5,\n            \"transit_duration_mins\": 0,\n            \"static_duration_mins\": 5,\n            \"distance_km\": null,\n            \"eta_source\": null,\n            \"from_location\": null,\n            \"to_location\": null,\n            \"planned_start_at\": null,\n            \"planned_end_at\": null,\n            \"arrived_at\": null,\n            \"departed_at\": null,\n            \"is_required\": true,\n            \"notes\": null,\n            \"progress\": {\n              \"total\": 1,\n              \"done\": 0,\n              \"percent\": 0\n            },\n            \"children_count\": 0,\n            \"children\": []\n          }\n        ]\n      }\n    ],\n    \"truck\": {\n      \"id\": 3,\n      \"unit_number\": \"T-12\"\n    },\n    \"asset\": {\n      \"id\": 9,\n      \"unit_number\": \"U-12\"\n    },\n    \"asset_specification\": {\n      \"id\": 4,\n      \"name\": \"20 Yard\"\n    }\n  }\n}"
                }
              ]
            },
            {
              "name": "Start Job",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/jobs/{{driver_job_id}}/start",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "jobs",
                    "{{driver_job_id}}",
                    "start"
                  ]
                },
                "description": "`POST /api/v1/driver/jobs/{driverJob}/start`\n\nNo body. Requires check-in. Starts the next sequenced job and rolls planned ancestors to `in_progress`.\n\nA `retrieve_job` tree (the root or any descendant) returns **422** until the linked order status is `delivered` (or later: `pickup_dispatched`, `picked_up`, `completed`). Delivery must finish first.\n\nWhen the tree root is an order-linked primary `delivery_job` or `retrieve_job`, related statuses update:\n- Order: `dispatched` (delivery) or `pickup_dispatched` (retrieve)\n- Driver: `en_route`\n- Truck: `in_use`\n- Asset: `in_transit` (delivery) or `in_transit_full` (retrieve)"
              },
              "response": [
                {
                  "name": "Started",
                  "originalRequest": {
                    "method": "POST",
                    "header": [],
                    "url": {
                      "raw": "{{base_url}}/api/v1/driver/jobs/{{driver_job_id}}/start",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "driver",
                        "jobs",
                        "{{driver_job_id}}",
                        "start"
                      ]
                    }
                  },
                  "status": "OK",
                  "code": 200,
                  "_postman_previewlanguage": "json",
                  "header": [
                    {
                      "key": "Content-Type",
                      "value": "application/json"
                    }
                  ],
                  "cookie": [],
                  "body": "{\n  \"success\": true,\n  \"message\": \"Job started successfully.\",\n  \"data\": {\n    \"id\": 5001,\n    \"uuid\": \"00000000-0000-4000-8000-000000005001\",\n    \"parent_job_id\": null,\n    \"order_id\": 88,\n    \"job_number\": \"JOB-12-005001\",\n    \"job_category\": \"primary\",\n    \"job_type\": \"deliver\",\n    \"label\": \"Delivery\",\n    \"source\": \"order\",\n    \"status\": \"in_progress\",\n    \"execution_sequence\": 1,\n    \"scheduled_date\": \"2026-08-01\",\n    \"duration_mins\": 42,\n    \"transit_duration_mins\": 0,\n    \"static_duration_mins\": 0,\n    \"distance_km\": null,\n    \"eta_source\": null,\n    \"from_location\": {\n      \"name\": \"Driver Lot\",\n      \"address\": \"100 Depot Rd, Austin, TX\",\n      \"lat\": 30.2301,\n      \"lng\": -97.7012\n    },\n    \"to_location\": {\n      \"name\": \"Lot Alpha\",\n      \"address\": \"10 River St, Austin, TX\",\n      \"lat\": 30.2501,\n      \"lng\": -97.7204\n    },\n    \"planned_start_at\": null,\n    \"planned_end_at\": null,\n    \"arrived_at\": null,\n    \"departed_at\": null,\n    \"is_required\": true,\n    \"notes\": \"Manual delivery\",\n    \"progress\": {\n      \"total\": 5,\n      \"done\": 0,\n      \"percent\": 0\n    },\n    \"children_count\": 2,\n    \"children\": [\n      {\n        \"id\": 5002,\n        \"uuid\": \"00000000-0000-4000-8000-000000005002\",\n        \"parent_job_id\": 5001,\n        \"order_id\": 88,\n        \"job_number\": \"JOB-12-005002\",\n        \"job_category\": \"bridge\",\n        \"job_type\": \"pickup\",\n        \"label\": \"Pickup\",\n        \"source\": \"dispatcher\",\n        \"status\": \"in_progress\",\n        \"execution_sequence\": 1,\n        \"scheduled_date\": \"2026-08-01\",\n        \"duration_mins\": 21,\n        \"transit_duration_mins\": 1,\n        \"static_duration_mins\": 0,\n        \"distance_km\": 4.2,\n        \"eta_source\": \"manual\",\n        \"from_location\": {\n          \"name\": \"Driver Lot\",\n          \"address\": \"100 Depot Rd, Austin, TX\",\n          \"lat\": 30.2301,\n          \"lng\": -97.7012\n        },\n        \"to_location\": {\n          \"name\": \"Lot Alpha\",\n          \"address\": \"10 River St, Austin, TX\",\n          \"lat\": 30.2501,\n          \"lng\": -97.7204\n        },\n        \"planned_start_at\": null,\n        \"planned_end_at\": null,\n        \"arrived_at\": null,\n        \"departed_at\": null,\n        \"is_required\": true,\n        \"notes\": null,\n        \"progress\": {\n          \"total\": 3,\n          \"done\": 0,\n          \"percent\": 0\n        },\n        \"children_count\": 2,\n        \"children\": [\n          {\n            \"id\": 5004,\n            \"uuid\": \"00000000-0000-4000-8000-000000005004\",\n            \"parent_job_id\": 5002,\n            \"order_id\": 88,\n            \"job_number\": \"JOB-12-005004\",\n            \"job_category\": \"static\",\n            \"job_type\": \"empty_inspect_and_attach\",\n            \"label\": \"Empty Inspect and Attach\",\n            \"source\": \"dispatcher\",\n            \"status\": \"in_progress\",\n            \"execution_sequence\": 1,\n            \"scheduled_date\": \"2026-08-01\",\n            \"duration_mins\": 15,\n            \"transit_duration_mins\": 0,\n            \"static_duration_mins\": 15,\n            \"distance_km\": null,\n            \"eta_source\": null,\n            \"from_location\": null,\n            \"to_location\": null,\n            \"planned_start_at\": null,\n            \"planned_end_at\": null,\n            \"arrived_at\": null,\n            \"departed_at\": null,\n            \"is_required\": true,\n            \"notes\": null,\n            \"progress\": {\n              \"total\": 1,\n              \"done\": 0,\n              \"percent\": 0\n            },\n            \"children_count\": 0,\n            \"children\": []\n          },\n          {\n            \"id\": 5005,\n            \"uuid\": \"00000000-0000-4000-8000-000000005005\",\n            \"parent_job_id\": 5002,\n            \"order_id\": 88,\n            \"job_number\": \"JOB-12-005005\",\n            \"job_category\": \"static\",\n            \"job_type\": \"qr_code_scan_asset\",\n            \"label\": \"QR Code Scan Asset\",\n            \"source\": \"dispatcher\",\n            \"status\": \"in_progress\",\n            \"execution_sequence\": 2,\n            \"scheduled_date\": \"2026-08-01\",\n            \"duration_mins\": 5,\n            \"transit_duration_mins\": 0,\n            \"static_duration_mins\": 5,\n            \"distance_km\": null,\n            \"eta_source\": null,\n            \"from_location\": null,\n            \"to_location\": null,\n            \"planned_start_at\": null,\n            \"planned_end_at\": null,\n            \"arrived_at\": null,\n            \"departed_at\": null,\n            \"is_required\": true,\n            \"notes\": null,\n            \"progress\": {\n              \"total\": 1,\n              \"done\": 0,\n              \"percent\": 0\n            },\n            \"children_count\": 0,\n            \"children\": []\n          }\n        ]\n      },\n      {\n        \"id\": 5003,\n        \"uuid\": \"00000000-0000-4000-8000-000000005003\",\n        \"parent_job_id\": 5001,\n        \"order_id\": 88,\n        \"job_number\": \"JOB-12-005003\",\n        \"job_category\": \"bridge\",\n        \"job_type\": \"haul\",\n        \"label\": \"Haul\",\n        \"source\": \"dispatcher\",\n        \"status\": \"in_progress\",\n        \"execution_sequence\": 2,\n        \"scheduled_date\": \"2026-08-01\",\n        \"duration_mins\": 21,\n        \"transit_duration_mins\": 1,\n        \"static_duration_mins\": 0,\n        \"distance_km\": 4.2,\n        \"eta_source\": \"manual\",\n        \"from_location\": {\n          \"name\": \"Lot Alpha\",\n          \"address\": \"10 River St, Austin, TX\",\n          \"lat\": 30.2501,\n          \"lng\": -97.7204\n        },\n        \"to_location\": {\n          \"name\": \"Customer Site\",\n          \"address\": \"500 Main St, Austin, TX\",\n          \"lat\": 30.2672,\n          \"lng\": -97.7431\n        },\n        \"planned_start_at\": null,\n        \"planned_end_at\": null,\n        \"arrived_at\": null,\n        \"departed_at\": null,\n        \"is_required\": true,\n        \"notes\": null,\n        \"progress\": {\n          \"total\": 2,\n          \"done\": 0,\n          \"percent\": 0\n        },\n        \"children_count\": 1,\n        \"children\": [\n          {\n            \"id\": 5006,\n            \"uuid\": \"00000000-0000-4000-8000-000000005006\",\n            \"parent_job_id\": 5003,\n            \"order_id\": 88,\n            \"job_number\": \"JOB-12-005006\",\n            \"job_category\": \"static\",\n            \"job_type\": \"photo_of_asset\",\n            \"label\": \"Photo of Asset\",\n            \"source\": \"dispatcher\",\n            \"status\": \"in_progress\",\n            \"execution_sequence\": 1,\n            \"scheduled_date\": \"2026-08-01\",\n            \"duration_mins\": 5,\n            \"transit_duration_mins\": 0,\n            \"static_duration_mins\": 5,\n            \"distance_km\": null,\n            \"eta_source\": null,\n            \"from_location\": null,\n            \"to_location\": null,\n            \"planned_start_at\": null,\n            \"planned_end_at\": null,\n            \"arrived_at\": null,\n            \"departed_at\": null,\n            \"is_required\": true,\n            \"notes\": null,\n            \"progress\": {\n              \"total\": 1,\n              \"done\": 0,\n              \"percent\": 0\n            },\n            \"children_count\": 0,\n            \"children\": []\n          }\n        ]\n      }\n    ],\n    \"truck\": {\n      \"id\": 3,\n      \"unit_number\": \"T-12\"\n    },\n    \"asset\": {\n      \"id\": 9,\n      \"unit_number\": \"U-12\"\n    },\n    \"asset_specification\": {\n      \"id\": 4,\n      \"name\": \"20 Yard\"\n    }\n  }\n}"
                }
              ]
            },
            {
              "name": "Complete Job",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/jobs/{{driver_job_id}}/complete",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "jobs",
                    "{{driver_job_id}}",
                    "complete"
                  ]
                },
                "description": "`POST /api/v1/driver/jobs/{driverJob}/complete`\n\nNo body. A parent cannot complete while required children are unfinished. Completion rolls upward. Returns 422 if an open blocking issue exists on the job or an unfinished descendant.\n\nWhen the tree root is an order-linked primary `deliver` or `retrieve` job and that root becomes `done`:\n- Order: `delivered` (deliver) or `completed` (retrieve)\n- Driver: `posted` if no other in-progress jobs\n- Truck: `idle` if no other in-progress jobs\n- Asset: `in_use` (deliver) or `parked` (retrieve)"
              },
              "response": []
            },
            {
              "name": "Submit Evidence",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"type\": \"image\",\n  \"file_path\": \"media/job-evidence.jpg\",\n  \"location\": {\n    \"name\": \"Lot Alpha\",\n    \"address\": \"10 River St, Austin, TX\",\n    \"lat\": 30.2501,\n    \"lng\": -97.7204\n  },\n  \"captured_at\": \"2026-08-01T14:05:00Z\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/jobs/{{driver_job_id}}/evidence",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "jobs",
                    "{{driver_job_id}}",
                    "evidence"
                  ]
                },
                "description": "`POST /api/v1/driver/jobs/{driverJob}/evidence`\n\nRaw JSON. Image only.\n\n**Required:** `type` (`image`), `file_path` (must start with `media/`).\n\nOptional: `location` `{ name, address, lat, lng }` (lat/lng required when location is sent), `captured_at`."
              },
              "response": []
            },
            {
              "name": "Submit QR/Text Evidence",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"type\": \"image\",\n  \"file_path\": \"media/job-evidence.jpg\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/jobs/{{driver_job_id}}/evidence",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "jobs",
                    "{{driver_job_id}}",
                    "evidence"
                  ]
                },
                "description": "`POST /api/v1/driver/jobs/{driverJob}/evidence`\n\nSame endpoint as **Submit Evidence**. Image only: `type` (`image`) and `file_path` (must start with `media/`)."
              },
              "response": []
            },
            {
              "name": "Issues",
              "item": [
                {
                  "name": "List My Issues",
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      },
                      {
                        "key": "Authorization",
                        "value": "Bearer {{driver_token}}"
                      }
                    ],
                    "url": {
                      "raw": "{{base_url}}/api/v1/driver/issues?status=&driver_job_id=&limit=20&pagination=1",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "driver",
                        "issues"
                      ],
                      "query": [
                        {
                          "key": "status",
                          "value": "",
                          "description": "optional: open | acknowledged | resolved | rejected"
                        },
                        {
                          "key": "driver_job_id",
                          "value": "",
                          "description": "optional job filter"
                        },
                        {
                          "key": "limit",
                          "value": "20"
                        },
                        {
                          "key": "pagination",
                          "value": "1"
                        }
                      ]
                    },
                    "description": "`GET /api/v1/driver/issues`\n\nLists issues **submitted by the authenticated driver** (`reported_by` = driver user).\n\nEach issue includes full issue fields, a light nested `job` (`id`, `job_number`, `order_id`, `driver_id`, `parent_job_id`, `job_category`, `job_type`, `label`, `status`, `scheduled_date`, `execution_sequence`), and `job.order` when present (`DriverJobOrderSummaryResource`). Nested `job` does **not** re-embed `open_issue`.\n\nOptional query: `status` (`JobIssueStatusEnum`: `open` | `acknowledged` | `resolved` | `rejected`), `driver_job_id`, `limit` (1-100), `pagination`.\n\n**Auth:** driver JWT. Check-in is **not** required."
                  },
                  "response": []
                },
                {
                  "name": "Report Delay Issue",
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{driver_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "POST",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      },
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"impact\": \"non_blocking\",\n  \"type\": \"delay\",\n  \"delay_mins\": 45,\n  \"title\": \"Traffic\",\n  \"description\": \"I'll need about 45 more minutes.\"\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    },
                    "url": {
                      "raw": "{{base_url}}/api/v1/driver/jobs/{{driver_job_id}}/issues",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "driver",
                        "jobs",
                        "{{driver_job_id}}",
                        "issues"
                      ]
                    },
                    "description": "`POST /api/v1/driver/jobs/{driverJob}/issues`\n\nThe job must be `in_progress`. Check-in is required. Do not send `status`; the issue is created as `open` (`JobIssueStatusEnum`: `open` | `acknowledged` | `resolved` | `rejected`). Company then PATCHes to `acknowledged`, `resolved`, or `rejected`.\n\n**Required:** `impact` (`blocking` | `non_blocking`), `type` (`damage` | `delay` | `access` | `equipment` | `safety` | `other`), `title`.\n\nFor `non_blocking`, any `type` is allowed and do not send a subject. For `blocking`, `subject_type` (`asset` | `truck` | `driver`) and a company-scoped `subject_id` are required. `delay_mins` (integer, minimum 1) is optional for every issue and is saved when sent.\n\n**Optional:** `severity` (`low` | `medium` | `high` | `critical`), `description`.\n\n**201** returns the issue (`id`, `driver_job_id`, `type`, `impact`, `subject_type`, `subject_id`, `delay_mins`, `severity`, `status`=`open`, `title`, `description`, `reported_at`). Planned, done, or other job statuses return **422**."
                  },
                  "response": []
                },
                {
                  "name": "Report Blocking Issue",
                  "request": {
                    "auth": {
                      "type": "bearer",
                      "bearer": [
                        {
                          "key": "token",
                          "value": "{{driver_token}}",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "POST",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      },
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"impact\": \"blocking\",\n  \"subject_type\": \"truck\",\n  \"subject_id\": 12,\n  \"type\": \"equipment\",\n  \"title\": \"Hydraulics failed\",\n  \"description\": \"Cannot deliver or retrieve this asset.\"\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    },
                    "url": {
                      "raw": "{{base_url}}/api/v1/driver/jobs/{{driver_job_id}}/issues",
                      "host": [
                        "{{base_url}}"
                      ],
                      "path": [
                        "api",
                        "v1",
                        "driver",
                        "jobs",
                        "{{driver_job_id}}",
                        "issues"
                      ]
                    },
                    "description": "`POST /api/v1/driver/jobs/{driverJob}/issues`\n\nThe job must be `in_progress`. Check-in is required. Do not send `status`; the issue is created as `open` (`JobIssueStatusEnum`: `open` | `acknowledged` | `resolved` | `rejected`). Company then PATCHes to `acknowledged`, `resolved`, or `rejected`.\n\n**Required:** `impact` (`blocking` | `non_blocking`), `type` (`damage` | `delay` | `access` | `equipment` | `safety` | `other`), `title`.\n\nFor `non_blocking`, any `type` is allowed and do not send a subject. For `blocking`, `subject_type` (`asset` | `truck` | `driver`) and a company-scoped `subject_id` are required. `delay_mins` (integer, minimum 1) is optional for every issue and is saved when sent.\n\n**Optional:** `severity` (`low` | `medium` | `high` | `critical`), `description`.\n\n**201** returns the issue (`id`, `driver_job_id`, `type`, `impact`, `subject_type`, `subject_id`, `delay_mins`, `severity`, `status`=`open`, `title`, `description`, `reported_at`). Planned, done, or other job statuses return **422**."
                  },
                  "response": []
                }
              ]
            }
          ],
          "description": "Driver job trees. Auth: `Authorization: Bearer {{driver_token}}`.\n\nToday's list only returns roots in `planned` or `in_progress` for the app-timezone date. Company must assign driver/truck and move the tree out of `todo` first.\n\nStart and complete return the **root tree** (`DriverJobTreeResource`)."
        },
        {
          "name": "Driver",
          "item": [
            {
              "name": "Get Attendances",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/attendances/get?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "attendances",
                    "get"
                  ],
                  "query": [
                    {
                      "key": "from_date",
                      "value": "{{from_date}}",
                      "description": "optional; nullable, date, date_format:Y-m-d",
                      "disabled": true
                    },
                    {
                      "key": "to_date",
                      "value": "{{to_date}}",
                      "description": "optional; nullable, date, date_format:Y-m-d, after_or_equal:from_date",
                      "disabled": true
                    },
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "optional; nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "id",
                      "value": "{{id}}",
                      "description": "optional; nullable, integer, exists:driver_attendances,id,driver_id,\"NULL\"",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "optional; nullable, integer, min:1"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "optional; nullable, in:asc,desc (allowed: asc, desc)"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/driver/attendances/get`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\DriverController@getAttendances`\n**Middleware:** `api, jwt.verify, checkType:driver, check.user.active.status, ensure.driver.user`\n**Validation:** `App\\Http\\Requests\\DriverRequests\\Attendance\\ListAttendancesRequest::rules()`\n\n| Query Param | Rules |\n|---|---|\n| from_date | nullable, date, date_format:Y-m-d |\n| to_date | nullable, date, date_format:Y-m-d, after_or_equal:from_date |\n| search | nullable, string |\n| id | nullable, integer, exists:driver_attendances,id,driver_id,\"NULL\" |\n| limit | nullable, integer, min:1 |\n| sort | nullable, in:asc,desc (allowed: asc, desc) |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Check In",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/check-in",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "check-in"
                  ]
                },
                "description": "`POST /api/v1/driver/check-in`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\DriverController@checkIn`\n**Middleware:** `api, jwt.verify, checkType:driver, check.user.active.status, ensure.driver.user`\n**Validation:** `App\\Http\\Requests\\DriverRequests\\Attendance\\CheckInRequest::rules()`\n\nOne check-in per driver per calendar date. A second `POST check-in` the same day returns **422** `You have already checked in today.` (including after checkout). Reopen a same-day checkout with `POST /api/v1/driver/resume-attendance` within grace minutes. An open shift from any date returns **422** `You already have an active shift. Please check out first.`\n"
              },
              "response": []
            },
            {
              "name": "Check Out",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/check-out",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "check-out"
                  ]
                },
                "description": "`POST /api/v1/driver/check-out`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\DriverController@checkOut`\n**Middleware:** `api, jwt.verify, checkType:driver, check.user.active.status, ensure.driver.user, driver.checked_in`\n**Validation:** `App\\Http\\Requests\\DriverRequests\\Attendance\\CheckOutRequest::rules()`\n"
              },
              "response": []
            },
            {
              "name": "End Break",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/end-break",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "end-break"
                  ]
                },
                "description": "`POST /api/v1/driver/end-break`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\DriverController@endBreak`\n**Middleware:** `api, jwt.verify, checkType:driver, check.user.active.status, ensure.driver.user, driver.checked_in`\n**Validation:** `App\\Http\\Requests\\DriverRequests\\Attendance\\EndBreakRequest::rules()`\n\nStart and end break are blocked while the driver has any job with status `in_progress`.\n"
              },
              "response": []
            },
            {
              "name": "History Jobs",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/history/jobs/get?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "history",
                    "jobs",
                    "get"
                  ],
                  "query": [
                    {
                      "key": "from_date",
                      "value": "{{from_date}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "to_date",
                      "value": "{{to_date}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "role",
                      "value": "{{role}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "status",
                      "value": "{{status}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/driver/history/jobs/get`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\DriverController@historyJobs`\n**Service:** `App\\Services\\Driver\\DriverReportService@historyJobs`\n**Resource:** `DriverJobResource`\n**Middleware:** `api, jwt.verify, checkType:driver, check.user.active.status, ensure.driver.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| from_date | nullable, string |\n| to_date | nullable, string |\n| role | nullable, string |\n| status | nullable, string |\n| limit | nullable, string |\n| sort | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Update Driver",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"full_name\": \"John Driver\", // optional\n    \"phone\": \"555-0100\", // optional\n    \"image\": null, // optional\n    \"icon\": null, // optional\n    \"license_number\": \"DL-123456\", // optional\n    \"license_expiry_date\": \"2027-08-01\", // optional\n    \"medical_card\": null, // optional\n    \"notes\": null, // optional\n    \"address\": { // optional\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1200 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/profile/update",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "profile",
                    "update"
                  ]
                },
                "description": "`POST /api/v1/driver/profile/update`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\DriverController@update`\n**Middleware:** `api, jwt.verify, checkType:driver, check.user.active.status, ensure.driver.user`\n**Validation:** `App\\Http\\Requests\\DriverRequests\\Profile\\UpdateProfileRequest::rules()`\n\nDriver self-service only. Email cannot be changed here. Does **not** accept company-managed fields (`lot_id`, `truck_id`, `hourly_rate`, `standard_hours_per_day`, preferred times, buffers, `status`, `is_active`, `joining_date`). A driver has one morph `address` field (`permanent_address` is not accepted).\n\n**Response `data`** matches `POST /api/v1/auth/login`: `UserWithCompanyDetailResource` with nested `driver` (including morph `address`). Does not include `access_token`.\n\n| Field | Rules |\n|---|---|\n| full_name | sometimes, string, min:2, max:100 |\n| phone | sometimes, string, regex:/^[0-9+\\-\\s()]{7,20}$/ |\n| image | nullable, string, max:256 |\n| icon | nullable, string, max:256 |\n| license_number | sometimes, string, max:50 |\n| license_expiry_date | sometimes, date, date_format:Y-m-d (past or future) |\n| medical_card | nullable, string, max:256 |\n| notes | nullable, string, max:2000 |\n| address | AddressPayload (optional) |"
              },
              "response": []
            },
            {
              "name": "Download Report",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/report/download?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "report",
                    "download"
                  ],
                  "query": [
                    {
                      "key": "start_date",
                      "value": "{{start_date}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "end_date",
                      "value": "{{end_date}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "year",
                      "value": "{{year}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable|string|in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/driver/report/download`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\DriverController@downloadReport`\n**Service:** `App\\Services\\Driver\\DriverReportService@csvReport`\n**Middleware:** `api, jwt.verify, checkType:driver, check.user.active.status, ensure.driver.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| start_date | nullable, string |\n| end_date | nullable, string |\n| year | nullable, string |\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Report",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/report/get?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "report",
                    "get"
                  ],
                  "query": [
                    {
                      "key": "start_date",
                      "value": "{{start_date}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "end_date",
                      "value": "{{end_date}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable|string|in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/driver/report/get`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\DriverController@report`\n**Service:** `App\\Services\\Driver\\DriverReportService@monthlyReport`\n**Middleware:** `api, jwt.verify, checkType:driver, check.user.active.status, ensure.driver.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| start_date | nullable, string |\n| end_date | nullable, string |\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Start Break",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"notes\": null // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/start-break",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "start-break"
                  ]
                },
                "description": "`POST /api/v1/driver/start-break`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\DriverController@startBreak`\n**Middleware:** `api, jwt.verify, checkType:driver, check.user.active.status, ensure.driver.user, driver.checked_in`\n**Validation:** `App\\Http\\Requests\\DriverRequests\\Attendance\\StartBreakRequest::rules()`\n\nStart and end break are blocked while the driver has any job with status `in_progress`. A driver may start **one** break per shift.\n\n| Field | Rules |\n|---|---|\n| notes | nullable, string, max:1000 |"
              },
              "response": []
            },
            {
              "name": "Check In Status",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/status/check-in?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "status",
                    "check-in"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable|string|in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/driver/status/check-in`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\DriverController@checkInStatus`\n**Middleware:** `api, jwt.verify, checkType:driver, check.user.active.status, ensure.driver.user`\n**Validation:** none detected â€” verify controller manually.\n\n**Response `data`:** `active_attendance` (`DriverAttendanceResource` or `null` when no open shift), `is_resumable` (bool). `active_shift` is not returned â€” it was a duplicate of `active_attendance`.\n"
              },
              "response": []
            },
            {
              "name": "Tracking Wrapper",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/tracking/wrapper?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "tracking",
                    "wrapper"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable|string|in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/driver/tracking/wrapper`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\DriverController@trackingWrapper`\n**Service:** `App\\Services\\Driver\\DriverReportService@trackingWrapper`\n**Resource:** nested `today_jobs` as `DriverJobResource`\n**Middleware:** `api, jwt.verify, checkType:driver, check.user.active.status, ensure.driver.user`\n**Validation:** none detected â€” verify controller manually.\n\n`total_hours` and `weekly_hours` are decimal hours rounded to 2 places (e.g. `1.97`).\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Chat",
          "item": [
            {
              "name": "Send Message",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"content\": \"Content\", // required\n    \"type\": \"Type\" // required\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/chats/{{chat_id}}/message",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "chats",
                    "{{chat_id}}",
                    "message"
                  ]
                },
                "description": "`POST /api/v1/driver/chats/{chat}/message`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\ChatController@sendMessage`\n**Middleware:** `api, jwt.verify, checkType:driver, ensure.driver.user`\n**Validation:** `App\\Http\\Requests\\Chat\\SendMessagesRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| content | required, string |\n| type | required, string |"
              },
              "response": []
            },
            {
              "name": "Get Messages",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/chats/{{chat_id}}/messages?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "chats",
                    "{{chat_id}}",
                    "messages"
                  ],
                  "query": [
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/driver/chats/{chat}/messages`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\ChatController@getMessages`\n**Middleware:** `api, jwt.verify, checkType:driver, ensure.driver.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| search | nullable, string |\n| limit | nullable, string |\n| sort | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Order",
          "item": [
            {
              "name": "Complete Job",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/jobs/{{driver_job_id}}/complete",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "jobs",
                    "{{driver_job_id}}",
                    "complete"
                  ]
                },
                "description": "`POST /api/v1/driver/jobs/{driverJob}/complete`\n\nNo body. Requires check-in. A parent cannot complete while required children are unfinished. Completion rolls upward. Returns 422 if an open blocking issue exists on the job or an unfinished descendant.\n\nWhen the tree root is an order-linked primary `deliver` or `retrieve` job and that root becomes `done`:\n- Order: `delivered` (deliver) or `completed` (retrieve)\n- Driver: `posted` if no other in-progress jobs\n- Truck: `idle` if no other in-progress jobs\n- Asset: `in_use` (deliver) or `parked` (retrieve)"
              },
              "response": []
            },
            {
              "name": "Dashboard",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/dashboard?date={{date}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "dashboard"
                  ],
                  "query": [
                    {
                      "key": "date",
                      "value": "{{date}}",
                      "description": "nullable|date"
                    }
                  ]
                },
                "description": "`GET /api/v1/driver/dashboard`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\DashboardController@index`\n**Middleware:** `api, jwt.verify, checkType:driver, check.user.active.status, ensure.driver.user`\n\n**Response counts (DriverDashboardService):**\n| Field | Meaning |\n|---|---|\n| leaves | Approved leave rows (`leaves` table) |\n| leave_requests | Total leave requests |\n| pending_leave_requests | Leave requests still reviewable (`pending`, `partially_reviewed`, `partially_approved`) |\n| today_jobs / pending_jobs / completed_jobs / cancelled_or_aborted_jobs | Job counts (inactive = cancelled, transferred, aborted) |\n\n| Query Param | Rules |\n|---|---|\n| date | optional date (defaults to today) |"
              },
              "response": []
            },
            {
              "name": "Get Order",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/order/{{order_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "order",
                    "{{order_id}}"
                  ]
                },
                "description": "`GET /api/v1/driver/order/{order}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\OrderController@show`\n**Service:** `App\\Services\\Driver\\DriverOrderService@loadForShow`\n**Resource:** `App\\Http\\Resources\\Order\\DriverOrderResource` (extends `OrderResource`; nested `chats` as `ChatSummaryResource`)\n**Middleware:** `api, jwt.verify, checkType:driver, check.user.active.status, ensure.driver.user`\n\nThe driver must have a job on this order (same company). Other company orders, or company orders assigned only to another driver, return 403. Jobs are **not** nested â€” use `GET /api/v1/driver/jobs?order_id={id}`. Nested `asset` includes `image_url` and `icon_url`; nested `asset_specification` includes `image_url`. Nested `chats` are limited to threads this driver participates in."
              },
              "response": []
            },
            {
              "name": "Start Job",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/jobs/{{driver_job_id}}/start",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "jobs",
                    "{{driver_job_id}}",
                    "start"
                  ]
                },
                "description": "`POST /api/v1/driver/jobs/{driverJob}/start`\n\nNo body. Requires check-in. Starts the next sequenced job and rolls planned ancestors to `in_progress`.\n\nA `retrieve_job` tree (the root or any descendant) returns **422** until the linked order status is `delivered` (or later: `pickup_dispatched`, `picked_up`, `completed`). Delivery must finish first.\n\nWhen the tree root is an order-linked primary `delivery_job` or `retrieve_job`, related statuses update:\n- Order: `dispatched` (delivery) or `pickup_dispatched` (retrieve)\n- Driver: `en_route`\n- Truck: `in_use`\n- Asset: `in_transit` (delivery) or `in_transit_full` (retrieve)"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Driver Leave Request",
          "item": [
            {
              "name": "List Driver Leave Request",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/leave-requests?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "leave-requests"
                  ],
                  "query": [
                    {
                      "key": "status",
                      "value": "{{status}}",
                      "description": "optional; nullable, string, in:\"pending\",\"partially_reviewed\",\"approved\",\"partially_approved\",\"rejected\",\"cancelled\",\"expired\" (allowed: \"pending\", \"partially_reviewed\", \"approved\", \"partially_approved\", \"rejected\", \"cancelled\", \"expired\")",
                      "disabled": true
                    },
                    {
                      "key": "from_date",
                      "value": "{{from_date}}",
                      "description": "optional; nullable, date, date_format:Y-m-d",
                      "disabled": true
                    },
                    {
                      "key": "to_date",
                      "value": "{{to_date}}",
                      "description": "optional; nullable, date, date_format:Y-m-d, after_or_equal:from_date",
                      "disabled": true
                    },
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "optional; nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "optional; nullable, integer, min:1"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "optional; nullable, in:asc,desc (allowed: asc, desc)"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/driver/leave-requests`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\DriverLeaveRequestController@index`\n**Middleware:** `api, jwt.verify, checkType:driver, check.user.active.status, ensure.driver.user`\n**Validation:** `App\\Http\\Requests\\DriverRequests\\Leave\\IndexLeaveRequestRequest::rules()`\n\n| Query Param | Rules |\n|---|---|\n| status | nullable, string, in:\"pending\",\"partially_reviewed\",\"approved\",\"partially_approved\",\"rejected\",\"cancelled\",\"expired\" (allowed: \"pending\", \"partially_reviewed\", \"approved\", \"partially_approved\", \"rejected\", \"cancelled\", \"expired\") |\n| from_date | nullable, date, date_format:Y-m-d |\n| to_date | nullable, date, date_format:Y-m-d, after_or_equal:from_date |\n| search | nullable, string |\n| limit | nullable, integer, min:1 |\n| sort | nullable, in:asc,desc (allowed: asc, desc) |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Create Driver Leave Request",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"leave_type\": \"Leave Type\", // required\n    \"start_date\": \"2026-07-21\", // required\n    \"end_date\": \"2026-07-21\", // required\n    \"reason\": null // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/leave-requests",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "leave-requests"
                  ]
                },
                "description": "`POST /api/v1/driver/leave-requests`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\DriverLeaveRequestController@store`\n**Middleware:** `api, jwt.verify, checkType:driver, check.user.active.status, ensure.driver.user`\n**Validation:** `App\\Http\\Requests\\DriverRequests\\Leave\\StoreLeaveRequestRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| leave_type | required, Enum |\n| start_date | required, date, date_format:Y-m-d, after_or_equal:today |\n| end_date | required, date, date_format:Y-m-d, after_or_equal:start_date |\n| reason | nullable, string, max:2000 |"
              },
              "response": []
            },
            {
              "name": "Get Driver Leave Request",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/leave-requests/{{leave_request_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "leave-requests",
                    "{{leave_request_id}}"
                  ]
                },
                "description": "`GET /api/v1/driver/leave-requests/{leaveRequest}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\DriverLeaveRequestController@show`\n**Middleware:** `api, jwt.verify, checkType:driver, check.user.active.status, ensure.driver.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Update Driver Leave Request",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"leave_type\": \"Leave Type\", // required\n    \"start_date\": \"2026-07-21\", // required\n    \"end_date\": \"2026-07-21\", // required\n    \"reason\": null // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/leave-requests/{{leave_request_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "leave-requests",
                    "{{leave_request_id}}"
                  ]
                },
                "description": "`PUT /api/v1/driver/leave-requests/{leaveRequest}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\DriverLeaveRequestController@update`\n**Middleware:** `api, jwt.verify, checkType:driver, check.user.active.status, ensure.driver.user`\n**Validation:** `App\\Http\\Requests\\DriverRequests\\Leave\\UpdateLeaveRequestRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| leave_type | required, Enum |\n| start_date | required, date, date_format:Y-m-d, after_or_equal:today |\n| end_date | required, date, date_format:Y-m-d, after_or_equal:start_date |\n| reason | nullable, string, max:2000 |"
              },
              "response": []
            },
            {
              "name": "Cancel",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"cancellation_reason\": null // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/leave-requests/{{leave_request_id}}/cancel",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "leave-requests",
                    "{{leave_request_id}}",
                    "cancel"
                  ]
                },
                "description": "`POST /api/v1/driver/leave-requests/{leaveRequest}/cancel`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\DriverLeaveRequestController@cancel`\n**Middleware:** `api, jwt.verify, checkType:driver, check.user.active.status, ensure.driver.user`\n**Validation:** `App\\Http\\Requests\\DriverRequests\\Leave\\CancelLeaveRequestRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| cancellation_reason | nullable, string, max:2000 |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Leave",
          "item": [
            {
              "name": "List Leave",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/leaves?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "leaves"
                  ],
                  "query": [
                    {
                      "key": "status",
                      "value": "{{status}}",
                      "description": "optional; nullable, string, in:\"pending\",\"approved\",\"rejected\",\"cancelled\",\"revoked\",\"history\" (allowed: \"pending\", \"approved\", \"rejected\", \"cancelled\", \"revoked\", \"history\")",
                      "disabled": true
                    },
                    {
                      "key": "from_date",
                      "value": "{{from_date}}",
                      "description": "optional; nullable, date, date_format:Y-m-d",
                      "disabled": true
                    },
                    {
                      "key": "to_date",
                      "value": "{{to_date}}",
                      "description": "optional; nullable, date, date_format:Y-m-d, after_or_equal:from_date",
                      "disabled": true
                    },
                    {
                      "key": "search",
                      "value": "{{search}}",
                      "description": "optional; nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "optional; nullable, integer, min:1"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "optional; nullable, in:asc,desc (allowed: asc, desc)"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/driver/leaves`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\LeaveController@index`\n**Middleware:** `api, jwt.verify, checkType:driver, check.user.active.status, ensure.driver.user`\n**Validation:** `App\\Http\\Requests\\DriverRequests\\Leaves\\IndexLeaveRequest::rules()`\n\n| Query Param | Rules |\n|---|---|\n| status | nullable, string, in:\"pending\",\"approved\",\"rejected\",\"cancelled\",\"revoked\",\"history\" (allowed: \"pending\", \"approved\", \"rejected\", \"cancelled\", \"revoked\", \"history\") |\n| from_date | nullable, date, date_format:Y-m-d |\n| to_date | nullable, date, date_format:Y-m-d, after_or_equal:from_date |\n| search | nullable, string |\n| limit | nullable, integer, min:1 |\n| sort | nullable, in:asc,desc (allowed: asc, desc) |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Get Leave Stats",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/leaves/stats?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "leaves",
                    "stats"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "optional; nullable, integer, min:1"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable|string|in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/driver/leaves/stats`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\LeaveController@getLeaveStats`\n**Middleware:** `api, jwt.verify, checkType:driver, check.user.active.status, ensure.driver.user`\n**Validation:** `App\\Http\\Requests\\DriverRequests\\Leaves\\LeaveStatsRequest::rules()`\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable, integer, min:1 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Notification",
          "item": [
            {
              "name": "List Notification",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/notifications/get?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "notifications",
                    "get"
                  ],
                  "query": [
                    {
                      "key": "status",
                      "value": "{{status}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/driver/notifications/get`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\NotificationController@index`\n**Middleware:** `api, jwt.verify, checkType:driver, check.user.active.status, ensure.driver.user`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| status | nullable, string |\n| limit | nullable, string |\n| sort | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Mark All As Read",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/notifications/mark-all-read",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "notifications",
                    "mark-all-read"
                  ]
                },
                "description": "`POST /api/v1/driver/notifications/mark-all-read`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\NotificationController@markAllAsRead`\n**Middleware:** `api, jwt.verify, checkType:driver, check.user.active.status, ensure.driver.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Delete Notification",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/notifications/{{notification_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "notifications",
                    "{{notification_id}}"
                  ]
                },
                "description": "`DELETE /api/v1/driver/notifications/{id}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\NotificationController@deleteNotification`\n**Middleware:** `api, jwt.verify, checkType:driver, check.user.active.status, ensure.driver.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Mark As Read",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{driver_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/driver/notifications/{{notification_id}}/read",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "driver",
                    "notifications",
                    "{{notification_id}}",
                    "read"
                  ]
                },
                "description": "`POST /api/v1/driver/notifications/{id}/read`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\NotificationController@markAsRead`\n**Middleware:** `api, jwt.verify, checkType:driver, check.user.active.status, ensure.driver.user`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Send Location",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{driver_token}}",
                  "type": "string"
                }
              ]
            },
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"location\": { // optional\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1200 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{base_url}}/api/v1/driver/send-location/{{driver_job_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "driver",
                "send-location",
                "{{driver_job_id}}"
              ]
            },
            "description": "`POST /api/v1/driver/send-location/{driverJob}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Driver\\LocationController@sendLocation`\n**Middleware:** `api, jwt.verify, checkType:driver, check.user.active.status, ensure.driver.user`\n**Validation:** `App\\Http\\Requests\\DriverRequests\\Location\\StoreUpdateDumpsertLocation::rules()`\n\n| Field | Rules |\n|---|---|\n| location | LocationPayload |"
          },
          "response": []
        }
      ]
    },
    {
      "name": "06 Admin",
      "item": [
        {
          "name": "Auth",
          "item": [
            {
              "name": "Forgot Password",
              "request": {
                "auth": {
                  "type": "noauth"
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"email\": \"{{admin_email}}\" // required\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/auth/forgot-password",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "auth",
                    "forgot-password"
                  ]
                },
                "description": "`POST /api/v1/admin/auth/forgot-password`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\AuthController@forgotPassword`\n**Middleware:** `api`\n**Validation:** `App\\Http\\Requests\\Admin\\Auth\\ForgetPasswordRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| email | required, email, exists:admins,email |"
              },
              "response": []
            },
            {
              "name": "Logout",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{admin_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/auth/logout",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "auth",
                    "logout"
                  ]
                },
                "description": "`POST /api/v1/admin/auth/logout`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\AuthController@logout`\n**Middleware:** `api, jwt.verify, admin`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Me",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{admin_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/auth/me",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "auth",
                    "me"
                  ]
                },
                "description": "`GET /api/v1/admin/auth/me`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\AuthController@me`\n**Middleware:** `api, jwt.verify, admin`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Refresh",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test('Refresh successful', () => pm.expect(pm.response.code).to.eql(200));",
                      "const json = pm.response.json();",
                      "if (json.access_token) pm.environment.set('admin_token', json.access_token);"
                    ]
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{admin_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/auth/refresh-token",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "auth",
                    "refresh-token"
                  ]
                },
                "description": "`POST /api/v1/admin/auth/refresh-token`\n\n**Controller:** `App\\\\Http\\\\Controllers\\\\Api\\\\V1\\\\Admin\\\\AuthController@refresh`\n**Middleware:** `api`\n\nSend `Authorization: Bearer {{admin_token}}`. Returns a new token and blacklists the old one.\n"
              },
              "response": []
            },
            {
              "name": "Register",
              "request": {
                "auth": {
                  "type": "noauth"
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"email\": \"{{admin_email}}\", // required\n    \"password\": \"{{password}}\", // required\n    \"password_confirmation\": \"{{password}}\" // required (must match password)\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/auth/register",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "auth",
                    "register"
                  ]
                },
                "description": "`POST /api/v1/admin/auth/register`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\AuthController@register`\n**Middleware:** `api`\n**Validation:** `App\\Http\\Requests\\Admin\\Auth\\RegisterRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| email | required, string, email, max:255, unique:admins |\n| password | required, string, min:6, confirmed, Password |"
              },
              "response": []
            },
            {
              "name": "Reset Password",
              "request": {
                "auth": {
                  "type": "noauth"
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"email\": \"{{admin_email}}\", // required\n    \"code\": \"{{otp}}\", // required\n    \"password\": \"{{password}}\", // required\n    \"password_confirmation\": \"{{password}}\" // required (must match password)\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/auth/reset-password",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "auth",
                    "reset-password"
                  ]
                },
                "description": "`POST /api/v1/admin/auth/reset-password`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\AuthController@resetPassword`\n**Middleware:** `api`\n**Validation:** `App\\Http\\Requests\\Auth\\ResetPasswordRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| email | required, email |\n| code | required, numeric |\n| password | required, confirmed, min:4 |"
              },
              "response": []
            },
            {
              "name": "Verify Otp",
              "request": {
                "auth": {
                  "type": "noauth"
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"email\": \"{{admin_email}}\", // required\n    \"code\": \"{{otp}}\" // required\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/auth/verify-code",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "auth",
                    "verify-code"
                  ]
                },
                "description": "`POST /api/v1/admin/auth/verify-code`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\AuthController@verifyOtp`\n**Middleware:** `api`\n**Validation:** `App\\Http\\Requests\\Admin\\Auth\\VerifyOtpRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| email | required, email, exists:admins,email |\n| code | required, numeric |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Company",
          "item": [
            {
              "name": "List Company",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{admin_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/companies?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "companies"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable|string|in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/admin/companies`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\CompanyController@index`\n**Middleware:** `api, jwt.verify, admin`\n**Validation:** none detected â€” verify controller manually.\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Create Company",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{admin_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"name\": \"Name\", // required\n    \"email\": \"user@example.com\", // required\n    \"password\": null, // optional\n    \"phone\": \"Phone\", // required\n    \"address\": { // required\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1200 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    },\n    \"logo\": \"https://arcanebucket.s3.us-east-1.amazonaws.com/media/UuR8RjE2Xux4vxWEsWffRIxICIjGN0yWayfrNysb.jpg\", // required\n    \"description\": null, // optional\n    \"documents\": [ // required\n        {\n            \"type\": \"business_license\", // required\n            \"path\": \"{{imagePath}}\" // required\n        },\n        {\n            \"type\": \"insurance_license\", // required\n            \"path\": \"{{imagePath}}\" // required\n        },\n        {\n            \"type\": \"waste_management_cert\", // required\n            \"path\": \"{{imagePath}}\" // required\n        }\n    ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/companies",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "companies"
                  ]
                },
                "description": "`POST /api/v1/admin/companies`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\CompanyController@store`\n**Middleware:** `api, jwt.verify, admin`\n**Validation:** `App\\Http\\Requests\\Admin\\Company\\StoreCompanyRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| name | required, string |\n| email | required, email, unique:users,email |\n| password | nullable, string, min:8 |\n| phone | required, string |\n| address | required, array |\n| logo | required, url |\n| description | nullable, string |\n| documents | required, array |"
              },
              "response": []
            },
            {
              "name": "Get Company",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{admin_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/companies/{{company_id}}?limit={{limit}}&sort={{sort}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "companies",
                    "{{company_id}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    }
                  ]
                },
                "description": "`GET /api/v1/admin/companies/{companyId}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\CompanyController@show`\n**Middleware:** `api, jwt.verify, admin`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable, string |\n| sort | nullable, string |\n| pagination | nullable, string |"
              },
              "response": []
            },
            {
              "name": "Update Company",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{admin_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"name\": \"Name\", // required\n    \"phone\": \"Phone\", // required\n    \"slug\": null, // optional\n    \"address\": { // optional\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1200 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    },\n    \"logo\": null, // optional\n    \"description\": null, // optional\n    \"customer_panel_url\": null, // optional\n    \"documents\": [ // optional\n        {\n            \"type\": \"business_license\", // required when documents.*.path is sent\n            \"path\": \"{{imagePath}}\" // required when documents.*.type is sent\n        },\n        {\n            \"type\": \"insurance_license\", // required when documents.*.path is sent\n            \"path\": \"{{imagePath}}\" // required when documents.*.type is sent\n        },\n        {\n            \"type\": \"waste_management_cert\", // required when documents.*.path is sent\n            \"path\": \"{{imagePath}}\" // required when documents.*.type is sent\n        }\n    ],\n    \"status\": null, // optional\n    \"is_active\": null, // optional\n    \"onboarding_completed\": null, // optional\n    \"onboarding_completed_at\": null, // optional\n    \"finix_identity_id\": \"{{finix_identity_id}}\", // optional\n    \"finix_merchant_id\": \"{{finix_merchant_id}}\", // optional\n    \"finix_onboarding_status\": null, // optional\n    \"finix_onboarding_form_id\": \"{{finix_onboarding_form_id}}\", // optional\n    \"finix_onboarding_url\": null, // optional\n    \"finix_onboarding_url_expired_at\": null, // optional\n    \"finix_onboarding_notes\": null, // optional\n    \"finix_onboarding_completed_at\": null, // optional\n    \"onboarding_status\": null // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/companies/{{company_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "companies",
                    "{{company_id}}"
                  ]
                },
                "description": "`PUT /api/v1/admin/companies/{companyId}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\CompanyController@update`\n**Middleware:** `api, jwt.verify, admin`\n**Validation:** `App\\Http\\Requests\\CompanyRequests\\Company\\UpdateCompanyRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| name | required, string |\n| phone | required, string, max:50 |\n| slug | sometimes, string, unique:companies,slug,NULL,id |\n| address | nullable, array, AddressPayload |\n| logo | nullable, string, max:1000, starts_with:media/, not_regex:/^https?:\\/\\//i |\n| description | nullable, string |\n| customer_panel_url | sometimes, nullable, string, max:255 |\n| documents | nullable, array |\n| status | prohibited |\n| is_active | prohibited |\n| onboarding_completed | prohibited |\n| onboarding_completed_at | prohibited |\n| finix_identity_id | prohibited |\n| finix_merchant_id | prohibited |\n| finix_onboarding_status | prohibited |\n| finix_onboarding_form_id | prohibited |\n| finix_onboarding_url | prohibited |\n| finix_onboarding_url_expired_at | prohibited |\n| finix_onboarding_notes | prohibited |\n| finix_onboarding_completed_at | prohibited |\n| onboarding_status | prohibited |"
              },
              "response": []
            },
            {
              "name": "Activate",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{admin_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/companies/{{company_id}}/activate",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "companies",
                    "{{company_id}}",
                    "activate"
                  ]
                },
                "description": "`POST /api/v1/admin/companies/{companyId}/activate`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\CompanyController@activate`\n**Middleware:** `api, jwt.verify, admin`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Deactivate",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{admin_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/companies/{{company_id}}/deactivate",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "companies",
                    "{{company_id}}",
                    "deactivate"
                  ]
                },
                "description": "`POST /api/v1/admin/companies/{companyId}/deactivate`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\CompanyController@deactivate`\n**Middleware:** `api, jwt.verify, admin`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Update Platform",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{admin_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PATCH",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"status\": \"Status\", // required\n    \"is_active\": false, // optional\n    \"onboarding_completed\": false, // optional\n    \"onboarding_completed_at\": null // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/companies/{{company_id}}/platform",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "companies",
                    "{{company_id}}",
                    "platform"
                  ]
                },
                "description": "`PATCH /api/v1/admin/companies/{companyId}/platform`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\CompanyController@updatePlatform`\n**Middleware:** `api, jwt.verify, admin`\n**Validation:** `App\\Http\\Requests\\Admin\\Company\\UpdateCompanyPlatformRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| status | sometimes, required, Enum |\n| is_active | sometimes, boolean |\n| onboarding_completed | sometimes, boolean |\n| onboarding_completed_at | sometimes, nullable, date |"
              },
              "response": []
            },
            {
              "name": "Get Company Reports",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{admin_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/get/companies/report?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "get",
                    "companies",
                    "report"
                  ],
                  "query": [
                    {
                      "key": "month",
                      "value": "{{month}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "year",
                      "value": "{{year}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "filters",
                      "value": "{{filters}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/admin/get/companies/report`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\CompanyController@getCompanyReports`\n**Middleware:** `api, jwt.verify, admin`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| month | nullable, string |\n| year | nullable, string |\n| filters | nullable, string |\n| limit | nullable, string |\n| sort | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Get Customer Reports",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{admin_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/get/customers/report?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "get",
                    "customers",
                    "report"
                  ],
                  "query": [
                    {
                      "key": "month",
                      "value": "{{month}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "filters",
                      "value": "{{filters}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable, string"
                    },
                    {
                      "key": "pagination",
                      "value": "{{pagination}}",
                      "description": "nullable, string",
                      "disabled": true
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/admin/get/customers/report`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\CompanyController@getCustomerReports`\n**Middleware:** `api, jwt.verify, admin`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| month | nullable, string |\n| filters | nullable, string |\n| limit | nullable, string |\n| sort | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Customer",
          "item": [
            {
              "name": "List Customer",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{admin_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/customers?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "customers"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable|string|in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/admin/customers`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\CustomerController@index`\n**Middleware:** `api, jwt.verify, admin`\n**Validation:** none detected â€” verify controller manually.\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Create Customer",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{admin_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"company_id\": \"{{company_id}}\", // required\n    \"first_name\": \"First Name\", // required\n    \"last_name\": null, // optional\n    \"email\": \"user@example.com\", // required\n    \"phone\": \"Phone\", // required\n    \"joining_date\": null, // optional\n    \"image\": null, // optional\n    \"address\": { // required\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1200 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/customers",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "customers"
                  ]
                },
                "description": "`POST /api/v1/admin/customers`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\CustomerController@store`\n**Middleware:** `api, jwt.verify, admin`\n**Validation:** `App\\Http\\Requests\\Admin\\Customer\\StoreCustomerRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| company_id | required, integer, exists:companies,id |\n| first_name | required, string |\n| last_name | nullable, string |\n| email | required, email, unique:users,email |\n| phone | required, string |\n| joining_date | nullable, date |\n| image | nullable, url |\n| address | required, array |"
              },
              "response": []
            },
            {
              "name": "Get Company Customers",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{admin_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/customers/{{company_id}}/get?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "customers",
                    "{{company_id}}",
                    "get"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable|string|in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/admin/customers/{companyId}/get`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\CustomerController@getCompanyCustomers`\n**Middleware:** `api, jwt.verify, admin`\n**Validation:** none detected â€” verify controller manually.\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Get Customer",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{admin_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/customers/{{customer_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "customers",
                    "{{customer_id}}"
                  ]
                },
                "description": "`GET /api/v1/admin/customers/{customerId}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\CustomerController@show`\n**Middleware:** `api, jwt.verify, admin`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Update Customer",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{admin_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"first_name\": \"First Name\", // required\n    \"last_name\": null, // optional\n    \"email\": \"user@example.com\", // required\n    \"phone\": \"Phone\", // required\n    \"address\": { // required\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1200 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    },\n    \"image\": null // optional\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/customers/{{customer_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "customers",
                    "{{customer_id}}"
                  ]
                },
                "description": "`PUT /api/v1/admin/customers/{customerId}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\CustomerController@update`\n**Middleware:** `api, jwt.verify, admin`\n**Validation:** `App\\Http\\Requests\\Admin\\Customer\\UpdateCustomerRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| first_name | required, string, max:255 |\n| last_name | nullable, string, max:255 |\n| email | required, string, email, max:255, unique:users,email,null |\n| phone | required, string, max:255 |\n| address | required, array |\n| image | nullable, url |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Driver",
          "item": [
            {
              "name": "List Driver",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{admin_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/drivers?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "drivers"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable|string|in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/admin/drivers`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\DriverController@index`\n**Middleware:** `api, jwt.verify, admin`\n**Validation:** none detected â€” verify controller manually.\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Create Driver",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{admin_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"company_id\": \"{{company_id}}\", // required\n    \"full_name\": \"Full Name\", // required\n    \"email\": \"user@example.com\", // required\n    \"phone\": \"Phone\", // required\n    \"gender\": \"male\", // required\n    \"permanent_address\": { // required\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1200 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    },\n    \"joining_date\": \"2026-07-21\", // required\n    \"license_number\": \"License Number\", // required\n    \"license_expiry_date\": \"2026-07-21\", // required\n    \"image\": null, // optional\n    \"availabilities\": [ // optional\n        {\n            \"day_of_week\": \"Day Of Week\", // optional\n            \"start_time\": \"09:00\", // optional\n            \"end_time\": \"09:00\", // optional\n            \"is_available\": true // optional\n        }\n    ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/drivers",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "drivers"
                  ]
                },
                "description": "`POST /api/v1/admin/drivers`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\DriverController@store`\n**Middleware:** `api, jwt.verify, admin`\n**Validation:** `App\\Http\\Requests\\Admin\\Driver\\StoreDriverRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| company_id | required, exists:companies,id |\n| full_name | required, string |\n| email | required, email, unique:users,email |\n| phone | required, string |\n| gender | required, in:male,female,other |\n| permanent_address | required, array |\n| joining_date | required, date |\n| license_number | required, string |\n| license_expiry_date | required, date |\n| image | nullable, url |\n| availabilities | required, array |"
              },
              "response": []
            },
            {
              "name": "Get Company Drivers",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{admin_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/drivers/{{company_id}}/get?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "drivers",
                    "{{company_id}}",
                    "get"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable|string|in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/admin/drivers/{companyId}/get`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\DriverController@getCompanyDrivers`\n**Middleware:** `api, jwt.verify, admin`\n**Validation:** none detected â€” verify controller manually.\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Get Driver",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{admin_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/drivers/{{driver_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "drivers",
                    "{{driver_id}}"
                  ]
                },
                "description": "`GET /api/v1/admin/drivers/{driverId}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\DriverController@show`\n**Middleware:** `api, jwt.verify, admin`\n**Validation:** none detected â€” verify controller manually.\n"
              },
              "response": []
            },
            {
              "name": "Update Driver",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{admin_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n    \"full_name\": \"Full Name\", // required\n    \"email\": \"user@example.com\", // required\n    \"phone\": \"Phone\", // required\n    \"gender\": \"male\", // required\n    \"permanent_address\": { // optional\n        \"type\": \"default\", // optional\n        \"address_line_1\": \"1200 Industrial Blvd\", // optional\n        \"address_line_2\": \"Gate B\", // optional\n        \"city\": \"Austin\", // optional\n        \"state\": \"TX\", // optional\n        \"postal_code\": \"78758\", // optional\n        \"country\": \"US\", // optional\n        \"latitude\": 30.4022, // optional\n        \"longitude\": -97.7265, // optional\n        \"place_id\": \"ChIJxxxxxxxxxxxxxxxx\", // optional\n        \"meta\": { // optional\n            \"notes\": \"Optional extra JSON stored on the location\" // optional\n        }\n    },\n    \"license_number\": \"License Number\", // required\n    \"license_expiry_date\": \"2026-07-21\", // required\n    \"image\": null, // optional\n    \"availabilities\": [ // optional\n        {\n            \"day_of_week\": null, // optional\n            \"start_time\": null, // optional\n            \"end_time\": null, // optional\n            \"is_available\": false // optional\n        }\n    ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/drivers/{{driver_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "drivers",
                    "{{driver_id}}"
                  ]
                },
                "description": "`PUT /api/v1/admin/drivers/{driverId}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\DriverController@update`\n**Middleware:** `api, jwt.verify, admin`\n**Validation:** `App\\Http\\Requests\\Admin\\Driver\\UpdateDriverRequest::rules()`\n\n| Field | Rules |\n|---|---|\n| full_name | required, string |\n| email | required, email, unique:users,email,null |\n| phone | required, string |\n| gender | required, in:male,female,other |\n| permanent_address | nullable, array |\n| license_number | required, string |\n| license_expiry_date | required, date |\n| image | nullable, url |\n| availabilities | nullable, array |"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Asset Specification",
          "item": [
            {
              "name": "List Asset Specifications",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{admin_token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/asset-specifications?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "asset-specifications"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}"
                    },
                    {
                      "key": "page",
                      "value": "1"
                    },
                    {
                      "key": "search",
                      "value": "",
                      "disabled": true
                    }
                  ]
                },
                "description": "GET /api/v1/admin/asset-specifications\n\n**Controller:** App\\\\Http\\\\Controllers\\\\Api\\\\V1\\\\Admin\\\\AssetSpecificationController@index"
              },
              "response": []
            },
            {
              "name": "Get Company Asset Specifications",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{admin_token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/asset-specifications/{{company_id}}/get?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "asset-specifications",
                    "{{company_id}}",
                    "get"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}"
                    },
                    {
                      "key": "page",
                      "value": "1"
                    }
                  ]
                },
                "description": "GET /api/v1/admin/asset-specifications/{companyId}/get\n\n**Controller:** App\\\\Http\\\\Controllers\\\\Api\\\\V1\\\\Admin\\\\AssetSpecificationController@getCompanyAssetSpecifications"
              },
              "response": []
            },
            {
              "name": "Get Asset Specification",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{admin_token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/asset-specifications/{{asset_specification_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "asset-specifications",
                    "{{asset_specification_id}}"
                  ]
                },
                "description": "GET /api/v1/admin/asset-specifications/{assetSpecificationId}\n\n**Controller:** App\\\\Http\\\\Controllers\\\\Api\\\\V1\\\\Admin\\\\AssetSpecificationController@show"
              },
              "response": []
            },
            {
              "name": "Create Asset Specification",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{admin_token}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"company_id\": \"{{company_id}}\", // required\n  \"asset_style_id\": \"{{asset_style_id}}\", // required\n  \"pricing_profile_id\": \"{{pricing_profile_id}}\", // required\n  \"name\": \"10 Yard\", // required\n  \"capacity\": 10, // optional\n  \"is_active\": true // optional\n}"
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/asset-specifications",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "asset-specifications"
                  ]
                },
                "description": "POST /api/v1/admin/asset-specifications\n\n**Controller:** App\\\\Http\\\\Controllers\\\\Api\\\\V1\\\\Admin\\\\AssetSpecificationController@store"
              },
              "response": []
            },
            {
              "name": "Update Asset Specification",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{admin_token}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"12 Yard\", // optional\n  \"is_active\": true // optional\n}"
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/asset-specifications/{{asset_specification_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "asset-specifications",
                    "{{asset_specification_id}}"
                  ]
                },
                "description": "PUT /api/v1/admin/asset-specifications/{assetSpecificationId}\n\n**Controller:** App\\\\Http\\\\Controllers\\\\Api\\\\V1\\\\Admin\\\\AssetSpecificationController@update"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Asset",
          "item": [
            {
              "name": "List Assets",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{admin_token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/assets?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "assets"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}"
                    },
                    {
                      "key": "page",
                      "value": "1"
                    },
                    {
                      "key": "search",
                      "value": "",
                      "disabled": true
                    }
                  ]
                },
                "description": "GET /api/v1/admin/assets\n\n**Controller:** App\\\\Http\\\\Controllers\\\\Api\\\\V1\\\\Admin\\\\AssetController@index"
              },
              "response": []
            },
            {
              "name": "Get Company Assets",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{admin_token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/assets/{{company_id}}/get?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "assets",
                    "{{company_id}}",
                    "get"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}"
                    },
                    {
                      "key": "page",
                      "value": "1"
                    }
                  ]
                },
                "description": "GET /api/v1/admin/assets/{companyId}/get\n\n**Controller:** App\\\\Http\\\\Controllers\\\\Api\\\\V1\\\\Admin\\\\AssetController@getCompanyAssets"
              },
              "response": []
            },
            {
              "name": "Get Asset",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{admin_token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/assets/{{asset_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "assets",
                    "{{asset_id}}"
                  ]
                },
                "description": "GET /api/v1/admin/assets/{asset}\n\n**Controller:** App\\\\Http\\\\Controllers\\\\Api\\\\V1\\\\Admin\\\\AssetController@show"
              },
              "response": []
            },
            {
              "name": "Create Asset",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{admin_token}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"company_id\": \"{{company_id}}\", // required\n  \"asset_specification_id\": \"{{asset_specification_id}}\", // required\n  \"asset_number\": \"A-1001\", // required\n  \"is_active\": true // optional\n}"
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/assets",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "assets"
                  ]
                },
                "description": "POST /api/v1/admin/assets\n\n**Controller:** App\\\\Http\\\\Controllers\\\\Api\\\\V1\\\\Admin\\\\AssetController@store"
              },
              "response": []
            },
            {
              "name": "Update Asset",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{admin_token}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"asset_number\": \"A-1001\", // optional\n  \"is_active\": true // optional\n}"
                },
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/assets/{{asset_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "assets",
                    "{{asset_id}}"
                  ]
                },
                "description": "PUT /api/v1/admin/assets/{asset}\n\n**Controller:** App\\\\Http\\\\Controllers\\\\Api\\\\V1\\\\Admin\\\\AssetController@update"
              },
              "response": []
            },
            {
              "name": "List Waste Types By Company",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{admin_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{admin_token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/waste-types?company_id={{company_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "waste-types"
                  ],
                  "query": [
                    {
                      "key": "company_id",
                      "value": "{{company_id}}",
                      "description": "required, exists:companies,id"
                    }
                  ]
                },
                "description": "`GET /api/v1/admin/waste-types`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\AssetController@wasteTypes`\n**Middleware:** admin JWT stack\n\n| Query Param | Rules |\n|---|---|\n| company_id | required, exists:companies,id |\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Order",
          "item": [
            {
              "name": "List Orders",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{admin_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/orders?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "orders"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable|string|in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/admin/orders`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\OrderController@index`\n**Middleware:** `api, jwt.verify, admin`\n**Validation:** none detected â€” verify controller manually.\n\nResponse items are `OrderResource`.\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Get Company Orders",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{admin_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/orders/{{company_id}}/get?limit={{limit}}&sort={{sort}}&page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "orders",
                    "{{company_id}}",
                    "get"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "{{limit}}",
                      "description": "nullable|integer|min:1|max:100"
                    },
                    {
                      "key": "sort",
                      "value": "{{sort}}",
                      "description": "nullable|string|in:asc,desc"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number for paginated results"
                    }
                  ]
                },
                "description": "`GET /api/v1/admin/orders/{company}/get`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\OrderController@getCompanyOrders`\n**Middleware:** `api, jwt.verify, admin`\n**Validation:** none detected â€” verify controller manually.\n\nResponse items are `OrderResource`.\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable|integer|min:1|max:100 |\n| sort | nullable|string|in:asc,desc |\n| page | Page number for paginated results |"
              },
              "response": []
            },
            {
              "name": "Get Order",
              "request": {
                "auth": {
                  "type": "bearer",
                  "bearer": [
                    {
                      "key": "token",
                      "value": "{{admin_token}}",
                      "type": "string"
                    }
                  ]
                },
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/v1/admin/orders/{{order_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "admin",
                    "orders",
                    "{{order_id}}"
                  ]
                },
                "description": "`GET /api/v1/admin/orders/{order}`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\OrderController@show`\n**Middleware:** `api, jwt.verify, admin`\n**Validation:** none detected â€” verify controller manually.\n\nResponse is `OrderResource` at `data` (includes nested `billing` when line items are loaded).\n"
              },
              "response": []
            }
          ]
        },
        {
          "name": "List Dashboard",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{admin_token}}",
                  "type": "string"
                }
              ]
            },
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/api/v1/admin/dashboard?limit={{limit}}&sort={{sort}}&page=1",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "admin",
                "dashboard"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "{{limit}}",
                  "description": "nullable, string"
                },
                {
                  "key": "sort",
                  "value": "{{sort}}",
                  "description": "nullable, string"
                },
                {
                  "key": "pagination",
                  "value": "{{pagination}}",
                  "description": "nullable, string",
                  "disabled": true
                },
                {
                  "key": "page",
                  "value": "1",
                  "description": "Page number for paginated results"
                }
              ]
            },
            "description": "`GET /api/v1/admin/dashboard`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\DashboardController@index`\n**Middleware:** `api, jwt.verify, admin`\n**Validation:** sniffed from controller source (no dedicated FormRequest â€” best-effort reflection).\n\n| Query Param | Rules |\n|---|---|\n| limit | nullable, string |\n| sort | nullable, string |\n| pagination | nullable, string |\n| page | Page number for paginated results |"
          },
          "response": []
        },
        {
          "name": "Update Password",
          "request": {
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{admin_token}}",
                  "type": "string"
                }
              ]
            },
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n    \"current_password\": \"{{password}}\", // required\n    \"password\": \"{{password}}\", // required\n    \"password_confirmation\": \"{{password}}\" // required\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{base_url}}/api/v1/admin/update-password",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "admin",
                "update-password"
              ]
            },
            "description": "`POST /api/v1/admin/update-password`\n\n**Controller:** `App\\Http\\Controllers\\Api\\V1\\Admin\\UserController@updatePassword`\n**Middleware:** `api, jwt.verify, admin`\n**Validation:** inline Validator::make()/$request->validate() (no dedicated FormRequest â€” best-effort reflection).\n\n| Field | Rules |\n|---|---|\n| current_password | required, current_password:admin |\n| password | required, confirmed |"
          },
          "response": []
        }
      ]
    }
  ],
  "variable": [
    {
      "key": "api_version",
      "value": "v1"
    }
  ]
}
