{
  "info": {
    "_postman_id": "620533ea-f290-4f6a-bc06-fc36e510dde8",
    "name": "Collection API - Structured",
    "description": "Structured Postman collection for modular Laravel API. Built from postman/build-collection.mjs.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{token}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "host_url",
      "value": "http://127.0.0.1:8000"
    },
    {
      "key": "base_url",
      "value": "{{host_url}}/api"
    },
    {
      "key": "token",
      "value": ""
    },
    {
      "key": "bank_id",
      "value": "1"
    },
    {
      "key": "main_product_id",
      "value": "1"
    },
    {
      "key": "country_id",
      "value": "1"
    },
    {
      "key": "governorate_id",
      "value": "1"
    },
    {
      "key": "area_id",
      "value": "1"
    },
    {
      "key": "role_id",
      "value": "1"
    },
    {
      "key": "user_id",
      "value": "1"
    },
    {
      "key": "leave_request_id",
      "value": "1"
    },
    {
      "key": "permission_request_id",
      "value": "1"
    },
    {
      "key": "mission_request_id",
      "value": "1"
    },
    {
      "key": "mission_type_id",
      "value": "1"
    }
  ],
  "item": [
    {
      "name": "00. Setup",
      "item": [
        {
          "name": "Health Check [GET] /up",
          "request": {
            "method": "GET",
            "auth": {
              "type": "noauth"
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": "{{host_url}}/up"
          }
        }
      ]
    },
    {
      "name": "01. Auth",
      "item": [
        {
          "name": "01.1 Public",
          "item": [
            {
              "name": "Login [POST] /auth/login",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/auth/login",
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"admin@example.com\",\n  \"password\": \"password\"\n}"
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "let json = null;",
                      "try { json = pm.response.json(); } catch (e) {}",
                      "const token = json?.data?.token ?? null;",
                      "if (token) pm.collectionVariables.set('token', token);",
                      "const userId = json?.data?.user?.id ?? null;",
                      "if (userId) pm.collectionVariables.set('user_id', String(userId));"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Forgot Password [POST] /auth/forgot-password",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/auth/forgot-password",
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"admin@example.com\"\n}"
                }
              }
            },
            {
              "name": "Reset Password [POST] /auth/reset-password",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/auth/reset-password",
                "auth": {
                  "type": "noauth"
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"admin@example.com\",\n  \"otp\": \"123456\",\n  \"password\": \"newpassword123\",\n  \"password_confirmation\": \"newpassword123\"\n}"
                }
              }
            }
          ]
        },
        {
          "name": "01.2 Protected",
          "item": [
            {
              "name": "Me [GET] /auth/me",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/auth/me"
              }
            },
            {
              "name": "Logout [POST] /auth/logout",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/auth/logout"
              }
            }
          ]
        }
      ]
    },
    {
      "name": "02. Banking",
      "item": [
        {
          "name": "02.1 Public",
          "item": [
            {
              "name": "List Banks [GET] /banks",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/banks",
                "auth": {
                  "type": "noauth"
                }
              }
            },
            {
              "name": "Show Bank [GET] /banks/{bank}",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/banks/{{bank_id}}",
                "auth": {
                  "type": "noauth"
                }
              }
            },
            {
              "name": "List Main Products [GET] /main-products",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/main-products?bank_id=%7B%7Bbank_id%7D%7D",
                "auth": {
                  "type": "noauth"
                }
              }
            },
            {
              "name": "Show Main Product [GET] /main-products/{id}",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/main-products/{{main_product_id}}",
                "auth": {
                  "type": "noauth"
                }
              }
            }
          ]
        },
        {
          "name": "02.2 Banks (Protected)",
          "item": [
            {
              "name": "Create Bank [POST] /banks",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/banks",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"CIB\",\n  \"name_en\": \"CIB\",\n  \"contract_date\": \"2026-01-01\",\n  \"contact_name\": \"Bank Rep\",\n  \"contact_email\": \"rep@bank.com\",\n  \"is_active\": true\n}"
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "let json = null;",
                      "try { json = pm.response.json(); } catch (e) {}",
                      "const id = json?.data?.id ?? json?.data?.data?.id ?? null;",
                      "if (id !== null && id !== undefined) pm.collectionVariables.set('bank_id', String(id));"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Update Bank [PUT] /banks/{bank}",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/banks/{{bank_id}}",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"CIB Updated\",\n  \"is_active\": true\n}"
                }
              }
            },
            {
              "name": "Delete Bank [DELETE] /banks/{bank}",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/banks/{{bank_id}}"
              }
            },
            {
              "name": "Trashed Banks [GET] /banks/trashed",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/banks/trashed"
              }
            },
            {
              "name": "Restore Bank [POST] /banks/{bank}/restore",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/banks/{{bank_id}}/restore"
              }
            },
            {
              "name": "Force Delete Bank [DELETE] /banks/{bank}/force",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/banks/{{bank_id}}/force"
              }
            }
          ]
        },
        {
          "name": "02.3 Main Products (Protected)",
          "item": [
            {
              "name": "Create Main Product [POST] /main-products",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/main-products",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"bank_id\": \"{{bank_id}}\",\n  \"name\": \"Product A\",\n  \"name_en\": \"Product A\",\n  \"product_type\": \"bucket\",\n  \"contract_date\": \"2026-01-01\",\n  \"contact_name\": \"Product Owner\",\n  \"contact_email\": \"owner@bank.com\",\n  \"is_active\": true\n}"
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "let json = null;",
                      "try { json = pm.response.json(); } catch (e) {}",
                      "const id = json?.data?.id ?? json?.data?.data?.id ?? null;",
                      "if (id !== null && id !== undefined) pm.collectionVariables.set('main_product_id', String(id));"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Update Main Product [PUT] /main-products/{id}",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/main-products/{{main_product_id}}",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"bank_id\": \"{{bank_id}}\",\n  \"name\": \"Product A Updated\",\n  \"product_type\": \"bucket\",\n  \"is_active\": true\n}"
                }
              }
            },
            {
              "name": "Delete Main Product [DELETE] /main-products/{id}",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/main-products/{{main_product_id}}"
              }
            },
            {
              "name": "Trashed Main Products [GET] /main-products/trashed",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/main-products/trashed"
              }
            },
            {
              "name": "Restore Main Product [POST] /main-products/{id}/restore",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/main-products/{{main_product_id}}/restore"
              }
            },
            {
              "name": "Force Delete Main Product [DELETE] /main-products/{id}/force",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/main-products/{{main_product_id}}/force"
              }
            }
          ]
        }
      ]
    },
    {
      "name": "03. Location",
      "item": [
        {
          "name": "03.1 Public",
          "item": [
            {
              "name": "List Countries [GET] /countries",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/countries",
                "auth": {
                  "type": "noauth"
                }
              }
            },
            {
              "name": "Show Country [GET] /countries/{id}",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/countries/{{country_id}}",
                "auth": {
                  "type": "noauth"
                }
              }
            },
            {
              "name": "List Governorates [GET] /governorates",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/governorates?country_id=%7B%7Bcountry_id%7D%7D",
                "auth": {
                  "type": "noauth"
                }
              }
            },
            {
              "name": "Show Governorate [GET] /governorates/{id}",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/governorates/{{governorate_id}}",
                "auth": {
                  "type": "noauth"
                }
              }
            },
            {
              "name": "List Areas [GET] /areas",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/areas?governorate_id=%7B%7Bgovernorate_id%7D%7D",
                "auth": {
                  "type": "noauth"
                }
              }
            },
            {
              "name": "Show Area [GET] /areas/{id}",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/areas/{{area_id}}",
                "auth": {
                  "type": "noauth"
                }
              }
            }
          ]
        },
        {
          "name": "03.2 Countries (Protected)",
          "item": [
            {
              "name": "Create Country [POST] /countries",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/countries",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Egypt\",\n  \"name_en\": \"Egypt\",\n  \"code\": \"EG\",\n  \"is_active\": true\n}"
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "let json = null;",
                      "try { json = pm.response.json(); } catch (e) {}",
                      "const id = json?.data?.id ?? json?.data?.data?.id ?? null;",
                      "if (id !== null && id !== undefined) pm.collectionVariables.set('country_id', String(id));"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Update Country [PUT] /countries/{id}",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/countries/{{country_id}}",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Egypt Updated\",\n  \"name_en\": \"Egypt\",\n  \"code\": \"EG\",\n  \"is_active\": true\n}"
                }
              }
            },
            {
              "name": "Delete Country [DELETE] /countries/{id}",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/countries/{{country_id}}"
              }
            },
            {
              "name": "Trashed Countries [GET] /countries/trashed",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/countries/trashed"
              }
            },
            {
              "name": "Restore Country [POST] /countries/{id}/restore",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/countries/{{country_id}}/restore"
              }
            },
            {
              "name": "Force Delete Country [DELETE] /countries/{id}/force",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/countries/{{country_id}}/force"
              }
            }
          ]
        },
        {
          "name": "03.3 Governorates (Protected)",
          "item": [
            {
              "name": "Create Governorate [POST] /governorates",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/governorates",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"country_id\": \"{{country_id}}\",\n  \"name\": \"Cairo\",\n  \"name_en\": \"Cairo\",\n  \"is_active\": true\n}"
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "let json = null;",
                      "try { json = pm.response.json(); } catch (e) {}",
                      "const id = json?.data?.id ?? json?.data?.data?.id ?? null;",
                      "if (id !== null && id !== undefined) pm.collectionVariables.set('governorate_id', String(id));"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Update Governorate [PUT] /governorates/{id}",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/governorates/{{governorate_id}}",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"country_id\": \"{{country_id}}\",\n  \"name\": \"Giza\",\n  \"name_en\": \"Giza\",\n  \"is_active\": true\n}"
                }
              }
            },
            {
              "name": "Delete Governorate [DELETE] /governorates/{id}",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/governorates/{{governorate_id}}"
              }
            },
            {
              "name": "Trashed Governorates [GET] /governorates/trashed",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/governorates/trashed"
              }
            },
            {
              "name": "Restore Governorate [POST] /governorates/{id}/restore",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/governorates/{{governorate_id}}/restore"
              }
            },
            {
              "name": "Force Delete Governorate [DELETE] /governorates/{id}/force",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/governorates/{{governorate_id}}/force"
              }
            }
          ]
        },
        {
          "name": "03.4 Areas (Protected)",
          "item": [
            {
              "name": "Create Area [POST] /areas",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/areas",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"governorate_id\": \"{{governorate_id}}\",\n  \"name\": \"Nasr City\",\n  \"name_en\": \"Nasr City\",\n  \"is_active\": true\n}"
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "let json = null;",
                      "try { json = pm.response.json(); } catch (e) {}",
                      "const id = json?.data?.id ?? json?.data?.data?.id ?? null;",
                      "if (id !== null && id !== undefined) pm.collectionVariables.set('area_id', String(id));"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Update Area [PUT] /areas/{id}",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/areas/{{area_id}}",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"governorate_id\": \"{{governorate_id}}\",\n  \"name\": \"Heliopolis\",\n  \"name_en\": \"Heliopolis\",\n  \"is_active\": true\n}"
                }
              }
            },
            {
              "name": "Delete Area [DELETE] /areas/{id}",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/areas/{{area_id}}"
              }
            },
            {
              "name": "Trashed Areas [GET] /areas/trashed",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/areas/trashed"
              }
            },
            {
              "name": "Restore Area [POST] /areas/{id}/restore",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/areas/{{area_id}}/restore"
              }
            },
            {
              "name": "Force Delete Area [DELETE] /areas/{id}/force",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/areas/{{area_id}}/force"
              }
            }
          ]
        }
      ]
    },
    {
      "name": "04. Roles & Permissions",
      "item": [
        {
          "name": "List Permissions [GET] /permissions",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": "{{base_url}}/permissions"
          }
        },
        {
          "name": "04.1 Roles",
          "item": [
            {
              "name": "List Roles [GET] /roles",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/roles"
              }
            },
            {
              "name": "Show Role [GET] /roles/{id}",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/roles/{{role_id}}"
              }
            },
            {
              "name": "Create Role [POST] /roles",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/roles",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"supervisor\",\n  \"label_ar\": \"مشرف\",\n  \"label_en\": \"Supervisor\",\n  \"permissions\": [\n    \"users.index\",\n    \"roles.index\"\n  ]\n}"
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "let json = null;",
                      "try { json = pm.response.json(); } catch (e) {}",
                      "const id = json?.data?.id ?? json?.data?.data?.id ?? null;",
                      "if (id !== null && id !== undefined) pm.collectionVariables.set('role_id', String(id));"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Update Role [PUT] /roles/{id}",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/roles/{{role_id}}",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"supervisor\",\n  \"label_ar\": \"مشرف معدل\",\n  \"label_en\": \"Supervisor Updated\"\n}"
                }
              }
            },
            {
              "name": "Delete Role [DELETE] /roles/{id}",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/roles/{{role_id}}"
              }
            },
            {
              "name": "Sync Role Permissions [POST] /roles/{id}/permissions",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/roles/{{role_id}}/permissions",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"permissions\": [\n    \"users.index\",\n    \"users.show\",\n    \"roles.index\"\n  ]\n}"
                }
              }
            }
          ]
        }
      ]
    },
    {
      "name": "05. Users",
      "item": [
        {
          "name": "List Users [GET] /users",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": "{{base_url}}/users"
          }
        },
        {
          "name": "Trashed Users [GET] /users/trashed",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": "{{base_url}}/users/trashed"
          }
        },
        {
          "name": "Show User [GET] /users/{id}",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": "{{base_url}}/users/{{user_id}}"
          }
        },
        {
          "name": "Restore User [POST] /users/{id}/restore",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": "{{base_url}}/users/{{user_id}}/restore"
          }
        },
        {
          "name": "Force Delete User [DELETE] /users/{id}/force",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": "{{base_url}}/users/{{user_id}}/force"
          }
        },
        {
          "name": "Assign Role To User [POST] /users/{id}/roles",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{base_url}}/users/{{user_id}}/roles",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"role\": \"supervisor\"\n}"
            }
          }
        },
        {
          "name": "Remove Role From User [DELETE] /users/{id}/roles",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{base_url}}/users/{{user_id}}/roles",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"role\": \"supervisor\"\n}"
            }
          }
        }
      ]
    },
    {
      "name": "06. Requests Workflow",
      "item": [
        {
          "name": "06.1 Leave Requests",
          "item": [
            {
              "name": "My Leave Requests [GET] /leave-requests",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/leave-requests"
              }
            },
            {
              "name": "Pending Leave For Me [GET] /leave-requests/pending-for-me",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/leave-requests/pending-for-me"
              }
            },
            {
              "name": "Show Leave Request [GET] /leave-requests/{id}",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/leave-requests/{{leave_request_id}}"
              }
            },
            {
              "name": "Create Leave Request [POST] /leave-requests",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/leave-requests",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"leave_type_id\": 1,\n  \"from_date\": \"2026-06-10\",\n  \"to_date\": \"2026-06-12\",\n  \"reason\": \"Personal leave\"\n}"
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "let json = null;",
                      "try { json = pm.response.json(); } catch (e) {}",
                      "const id = json?.data?.id ?? json?.data?.data?.id ?? null;",
                      "if (id !== null && id !== undefined) pm.collectionVariables.set('leave_request_id', String(id));"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Approve Leave L1 [POST] /leave-requests/{id}/approve-level1",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/leave-requests/{{leave_request_id}}/approve-level1",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"comment\": \"Approved on level 1\"\n}"
                }
              }
            },
            {
              "name": "Approve Leave L2 [POST] /leave-requests/{id}/approve-level2",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/leave-requests/{{leave_request_id}}/approve-level2",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"comment\": \"Approved on level 2\"\n}"
                }
              }
            },
            {
              "name": "Reject Leave L1 [POST] /leave-requests/{id}/reject-level1",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/leave-requests/{{leave_request_id}}/reject-level1",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Rejected on level 1\"\n}"
                }
              }
            },
            {
              "name": "Reject Leave L2 [POST] /leave-requests/{id}/reject-level2",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/leave-requests/{{leave_request_id}}/reject-level2",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Rejected on level 2\"\n}"
                }
              }
            },
            {
              "name": "Cancel Leave Request [POST] /leave-requests/{id}/cancel",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/leave-requests/{{leave_request_id}}/cancel",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Canceled by requester\"\n}"
                }
              }
            }
          ]
        },
        {
          "name": "06.2 Permission Requests",
          "item": [
            {
              "name": "My Permission Requests [GET] /permission-requests",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/permission-requests"
              }
            },
            {
              "name": "Pending Permission For Me [GET] /permission-requests/pending-for-me",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/permission-requests/pending-for-me"
              }
            },
            {
              "name": "Show Permission Request [GET] /permission-requests/{id}",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/permission-requests/{{permission_request_id}}"
              }
            },
            {
              "name": "Create Permission Request [POST] /permission-requests",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/permission-requests",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"date\": \"2026-06-10\",\n  \"from_time\": \"09:00\",\n  \"to_time\": \"11:00\",\n  \"reason\": \"Personal errand\"\n}"
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "let json = null;",
                      "try { json = pm.response.json(); } catch (e) {}",
                      "const id = json?.data?.id ?? json?.data?.data?.id ?? null;",
                      "if (id !== null && id !== undefined) pm.collectionVariables.set('permission_request_id', String(id));"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Approve Permission L1 [POST] /permission-requests/{id}/approve-level1",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/permission-requests/{{permission_request_id}}/approve-level1",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"comment\": \"Approved on level 1\"\n}"
                }
              }
            },
            {
              "name": "Approve Permission L2 [POST] /permission-requests/{id}/approve-level2",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/permission-requests/{{permission_request_id}}/approve-level2",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"comment\": \"Approved on level 2\"\n}"
                }
              }
            },
            {
              "name": "Reject Permission L1 [POST] /permission-requests/{id}/reject-level1",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/permission-requests/{{permission_request_id}}/reject-level1",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Rejected on level 1\"\n}"
                }
              }
            },
            {
              "name": "Reject Permission L2 [POST] /permission-requests/{id}/reject-level2",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/permission-requests/{{permission_request_id}}/reject-level2",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Rejected on level 2\"\n}"
                }
              }
            },
            {
              "name": "Cancel Permission Request [POST] /permission-requests/{id}/cancel",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/permission-requests/{{permission_request_id}}/cancel",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Canceled by requester\"\n}"
                }
              }
            }
          ]
        },
        {
          "name": "06.3 Mission Requests",
          "item": [
            {
              "name": "Mission Types [GET] /mission-requests/types",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/mission-requests/types"
              }
            },
            {
              "name": "My Mission Requests [GET] /mission-requests",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/mission-requests"
              }
            },
            {
              "name": "Pending Mission For Me [GET] /mission-requests/pending-for-me",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/mission-requests/pending-for-me"
              }
            },
            {
              "name": "Show Mission Request [GET] /mission-requests/{id}",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/mission-requests/{{mission_request_id}}"
              }
            },
            {
              "name": "Create Mission Request [POST] /mission-requests",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/mission-requests",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"mission_type_id\": \"{{mission_type_id}}\",\n  \"destination\": \"Cairo Office\",\n  \"from_date\": \"2026-06-10\",\n  \"to_date\": \"2026-06-10\",\n  \"purpose\": \"Client meeting\",\n  \"visit_cost\": 150\n}"
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "let json = null;",
                      "try { json = pm.response.json(); } catch (e) {}",
                      "const id = json?.data?.id ?? json?.data?.data?.id ?? null;",
                      "if (id !== null && id !== undefined) pm.collectionVariables.set('mission_request_id', String(id));"
                    ]
                  }
                }
              ]
            },
            {
              "name": "Approve Mission L1 [POST] /mission-requests/{id}/approve-level1",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/mission-requests/{{mission_request_id}}/approve-level1",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"comment\": \"Approved on level 1\"\n}"
                }
              }
            },
            {
              "name": "Approve Mission L2 [POST] /mission-requests/{id}/approve-level2",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/mission-requests/{{mission_request_id}}/approve-level2",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"comment\": \"Approved on level 2\"\n}"
                }
              }
            },
            {
              "name": "Reject Mission L1 [POST] /mission-requests/{id}/reject-level1",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/mission-requests/{{mission_request_id}}/reject-level1",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Rejected on level 1\"\n}"
                }
              }
            },
            {
              "name": "Reject Mission L2 [POST] /mission-requests/{id}/reject-level2",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/mission-requests/{{mission_request_id}}/reject-level2",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Rejected on level 2\"\n}"
                }
              }
            },
            {
              "name": "Cancel Mission Request [POST] /mission-requests/{id}/cancel",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{base_url}}/mission-requests/{{mission_request_id}}/cancel",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Canceled by requester\"\n}"
                }
              }
            }
          ]
        }
      ]
    }
  ]
}
